from datetime import datetime from backend.models.user import db class ServerConfigSnapshot(db.Model): """ 서버 설정 스냅샷 (BIOS, iDRAC, System 등) """ __tablename__ = 'server_config_snapshots' id = db.Column(db.Integer, primary_key=True) server_id = db.Column(db.Integer, db.ForeignKey('idrac_servers.id'), nullable=False) # 설정 유형: bios, idrac, system config_type = db.Column(db.String(20), nullable=False) # JSON 데이터 저장 data = db.Column(db.JSON, nullable=True) # 데이터 해시 (변경 감지용 - Optional) hash_value = db.Column(db.String(64), nullable=True) created_at = db.Column(db.DateTime, default=datetime.utcnow) updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) # 관계 설정 (IdracServer와의 관계는 IdracServer 모델에서 backref로 설정될 수도 있음) server = db.relationship('IdracServer', backref=db.backref('config_snapshots', lazy=True)) def to_dict(self): return { 'id': self.id, 'server_id': self.server_id, 'server_name': self.server.name if self.server else 'Unknown', 'config_type': self.config_type, 'data': self.data, 'updated_at': self.updated_at.strftime('%Y-%m-%d %H:%M:%S') }