📁 sources
PK id INTEGER
name TEXT
type TEXT (local|ssh|database)
config JSON
created_at DATETIME
updated_at DATETIME
⚙️ jobs
PK id INTEGER
name TEXT
source_id INTEGER → sources
strategy TEXT (full|incremental)
destination_path TEXT
exclude_patterns JSON
enabled BOOLEAN
created_at DATETIME
updated_at DATETIME
📅 schedules
PK id INTEGER
job_id INTEGER → jobs
cron_expression TEXT
enabled BOOLEAN
created_at DATETIME
▶️ job_executions
PK id INTEGER
job_id INTEGER → jobs
status TEXT (pending|running|success|failed|cancelled)
started_at DATETIME
completed_at DATETIME
bytes_processed INTEGER
bytes_backed_up INTEGER
error_message TEXT
triggered_by TEXT (manual|schedule)
💾 backups
PK id INTEGER
execution_id INTEGER → job_executions
storage_path TEXT
size_bytes INTEGER
checksum TEXT
type TEXT (full|incremental)
parent_backup_id INTEGER → backups (for incremental)
created_at DATETIME
⚙️ settings
PK key TEXT
value TEXT
updated_at DATETIME