diff options
Diffstat (limited to 'makima/src/db/models.rs')
| -rw-r--r-- | makima/src/db/models.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/makima/src/db/models.rs b/makima/src/db/models.rs index 135ae75..8204b86 100644 --- a/makima/src/db/models.rs +++ b/makima/src/db/models.rs @@ -68,6 +68,8 @@ pub struct File { /// Structured body content (headings, paragraphs, charts) #[sqlx(json)] pub body: Vec<BodyElement>, + /// Version number for optimistic locking + pub version: i32, pub created_at: DateTime<Utc>, pub updated_at: DateTime<Utc>, } @@ -100,6 +102,8 @@ pub struct UpdateFileRequest { pub summary: Option<String>, /// Structured body content (optional) pub body: Option<Vec<BodyElement>>, + /// Version for optimistic locking (required for updates from frontend) + pub version: Option<i32>, } /// Response for file list endpoint. @@ -120,6 +124,8 @@ pub struct FileSummary { pub transcript_count: usize, /// Duration derived from last transcript end time pub duration: Option<f32>, + /// Version number for optimistic locking + pub version: i32, pub created_at: DateTime<Utc>, pub updated_at: DateTime<Utc>, } @@ -137,6 +143,7 @@ impl From<File> for FileSummary { description: file.description, transcript_count: file.transcript.len(), duration: if duration > 0.0 { Some(duration) } else { None }, + version: file.version, created_at: file.created_at, updated_at: file.updated_at, } |
