immich_lib/models/
asset.rs1use serde::{Deserialize, Serialize};
4
5use super::exif::ExifInfo;
6
7#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)]
9#[serde(rename_all = "UPPERCASE")]
10pub enum AssetType {
11 Image,
13
14 Video,
16}
17
18#[derive(Debug, Clone, Deserialize, Serialize)]
20#[serde(rename_all = "camelCase")]
21pub struct AssetResponse {
22 pub id: String,
24
25 pub original_file_name: String,
27
28 pub file_created_at: String,
30
31 pub local_date_time: String,
33
34 #[serde(rename = "type")]
36 pub asset_type: AssetType,
37
38 pub exif_info: Option<ExifInfo>,
40
41 pub checksum: String,
43
44 pub is_trashed: bool,
46
47 pub is_favorite: bool,
49
50 pub is_archived: bool,
52
53 pub has_metadata: bool,
55
56 pub duration: String,
58
59 pub owner_id: String,
61
62 #[serde(default)]
64 pub original_mime_type: Option<String>,
65
66 #[serde(default)]
68 pub duplicate_id: Option<String>,
69
70 #[serde(default)]
72 pub thumbhash: Option<String>,
73}
74
75impl AssetResponse {
76 pub fn has_exif(&self) -> bool {
78 self.exif_info.is_some()
79 }
80}