feat: implementar Fases 3, 4 y 5 del roadmap (Planificacion Avanzada, Historial de Corridas y Copia Local Duplicada)
This commit is contained in:
@@ -98,11 +98,34 @@ class BackupJob(Base):
|
||||
status = Column(String(50), default="IDLE", nullable=False) # IDLE, RUNNING, ERROR, SUCCESS
|
||||
last_run_at = Column(DateTime(timezone=True), nullable=True)
|
||||
next_run_at = Column(DateTime(timezone=True), nullable=True)
|
||||
local_destination_path = Column(String(1024), nullable=True)
|
||||
created_at = Column(DateTime(timezone=True), default=utc_now, nullable=False)
|
||||
|
||||
client = relationship("Client", back_populates="jobs")
|
||||
backup_files = relationship("BackupFile", back_populates="job", cascade="all, delete-orphan")
|
||||
backup_sessions = relationship("BackupSession", back_populates="job", cascade="all, delete-orphan")
|
||||
runs = relationship("JobRun", back_populates="job", cascade="all, delete-orphan")
|
||||
|
||||
class JobRun(Base):
|
||||
__tablename__ = "job_runs"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
job_id = Column(Integer, ForeignKey("backup_jobs.id", ondelete="CASCADE"), nullable=False)
|
||||
client_id = Column(Integer, ForeignKey("clients.id", ondelete="CASCADE"), nullable=False)
|
||||
started_at = Column(DateTime(timezone=True), default=utc_now, nullable=False)
|
||||
completed_at = Column(DateTime(timezone=True), nullable=True)
|
||||
status = Column(String(50), default="RUNNING", nullable=False) # RUNNING, SUCCESS, FAILED
|
||||
|
||||
# Detailed execution metrics
|
||||
files_scanned = Column(Integer, default=0, nullable=False)
|
||||
files_copied = Column(Integer, default=0, nullable=False)
|
||||
files_skipped = Column(Integer, default=0, nullable=False)
|
||||
errors_count = Column(Integer, default=0, nullable=False)
|
||||
bytes_transferred = Column(BigInteger, default=0, nullable=False)
|
||||
error_summary = Column(Text, nullable=True)
|
||||
|
||||
job = relationship("BackupJob", back_populates="runs")
|
||||
client = relationship("Client")
|
||||
|
||||
class BackupSession(Base):
|
||||
__tablename__ = "backup_sessions"
|
||||
|
||||
Reference in New Issue
Block a user