import enum from sqlalchemy import Column, Integer, String, DateTime, Boolean, Enum, Text from sqlalchemy.sql import func from app.core.database import Base class BackupType(str, enum.Enum): MANUAL = "MANUAL" AUTO = "AUTO" class BackupRecord(Base): __tablename__ = "backup_records" id = Column(Integer, primary_key=True, index=True) filename = Column(String(255), nullable=False) file_path = Column(String(512), nullable=False) backup_type = Column(Enum(BackupType), default=BackupType.MANUAL, nullable=False) created_at = Column(DateTime(timezone=True), server_default=func.now()) # "users,applications,mappings" content_types = Column(String(255), nullable=True) file_size = Column(Integer, nullable=True) # Bytes class BackupSettings(Base): __tablename__ = "backup_settings" id = Column(Integer, primary_key=True, index=True) auto_backup_enabled = Column(Boolean, default=False) # 备份时间,例如 "02:00" (每天凌晨2点) backup_time = Column(String(10), default="02:00") # 上次自动备份时间 last_backup_at = Column(DateTime(timezone=True), nullable=True) updated_at = Column(DateTime(timezone=True), onupdate=func.now(), server_default=func.now())