libomni/types/db/v1/
backup.rs

1use serde::{Deserialize, Serialize};
2use chrono::{DateTime, Utc};
3use serde_json::Value;
4
5#[derive(Debug, sqlx::FromRow, Serialize, Deserialize)]
6pub struct Backup {
7    pub id: i64,
8    pub name: String,
9    pub description: Option<String>,
10    pub created_at: DateTime<Utc>,
11    pub created_by: String,
12    pub backup_type: String, // enum: 'PLATFORM', 'APPLICATION', 'PARTIAL'
13    pub status: String, // enum: 'CREATING', 'AVAILABLE', 'RESTORING', 'FAILED', 'DELETED'
14    pub format_version: String,
15    pub source_environment: String,
16    pub encryption_method: Option<String>,
17    pub encryption_key_id: Option<i64>,
18    pub size_bytes: Option<i64>,
19    pub has_system_core: bool,
20    pub has_directors: bool,
21    pub has_orchestrators: bool,
22    pub has_network_config: bool,
23    pub has_app_definitions: bool,
24    pub has_volume_data: bool,
25    pub included_apps: Option<String>,
26    pub included_services: Option<String>,
27    pub last_validated_at: Option<DateTime<Utc>>,
28    pub last_restored_at: Option<DateTime<Utc>>,
29    pub restore_target_environment: Option<String>,
30    pub restore_status: Option<String>,
31    pub storage_location: String,
32    pub manifest_path: String,
33    pub metadata: Option<Value>,
34}