cooklang_sync_client/
models.rs1use crate::schema::file_records;
2use diesel::prelude::*;
3use serde::{Deserialize, Serialize};
4use time::OffsetDateTime;
5
6use diesel::{AsExpression, FromSqlRow};
7
8use diesel::sql_types::Integer;
9
10#[repr(i32)]
11#[derive(Debug, Clone, Copy, AsExpression, FromSqlRow, PartialEq, Deserialize, Serialize)]
12#[diesel(sql_type = Integer)]
13pub enum FileFormat {
14 Binary = 1,
15 Text = 2,
16}
17
18#[derive(Debug)]
19pub enum IndexerUpdateEvent {
20 Updated,
21}
22
23#[derive(Queryable, Selectable, Identifiable, Debug, Clone)]
24#[diesel(table_name = file_records)]
25#[diesel(check_for_backend(diesel::sqlite::Sqlite))]
26pub struct FileRecord {
27 pub id: i32,
28 pub jid: Option<i32>,
29 pub deleted: bool,
30 pub path: String,
31 pub size: i64,
32 pub modified_at: OffsetDateTime,
33 pub namespace_id: i32,
34}
35
36#[derive(Insertable, Debug, Clone)]
37#[diesel(table_name = file_records)]
38#[diesel(check_for_backend(diesel::sqlite::Sqlite))]
39pub struct CreateForm {
40 pub jid: Option<i32>,
41 pub path: String,
42 pub deleted: bool,
43 pub size: i64,
44 pub modified_at: OffsetDateTime,
45 pub namespace_id: i32,
46}
47
48#[derive(Insertable, Debug, Clone)]
49#[diesel(table_name = file_records)]
50#[diesel(check_for_backend(diesel::sqlite::Sqlite))]
51pub struct DeleteForm {
52 pub path: String,
53 pub jid: Option<i32>,
54 pub size: i64,
55 pub modified_at: OffsetDateTime,
56 pub deleted: bool,
57 pub namespace_id: i32,
58}
59
60#[derive(AsChangeset, Debug, Clone)]
61#[diesel(table_name = file_records)]
62#[diesel(check_for_backend(diesel::sqlite::Sqlite))]
63pub struct FileRecordUpdateForm {
64 pub size: i64,
65 pub modified_at: OffsetDateTime,
66}
67
68#[derive(AsChangeset, Debug, Clone)]
69#[diesel(table_name = file_records)]
70#[diesel(check_for_backend(diesel::sqlite::Sqlite))]
71pub struct FileRecordNonDeletedFilterForm {
72 pub deleted: bool,
73}
74
75#[derive(AsChangeset, Debug, Clone)]
76#[diesel(table_name = file_records)]
77#[diesel(check_for_backend(diesel::sqlite::Sqlite))]
78pub struct FileRecordDeleteForm {
79 pub id: i32,
80 pub deleted: bool,
81 pub namespace_id: i32,
82}
83
84impl PartialEq<CreateForm> for FileRecord {
85 fn eq(&self, other: &CreateForm) -> bool {
86 self.path == other.path && self.size == other.size && self.modified_at == other.modified_at
87 }
88}