yggdrasil/models/
asset.rs1use serde::{Deserialize, Serialize};
11
12#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
14pub struct Asset {
15 pub id: String,
16 pub path: String,
18 pub filename: String,
19 pub mime: String,
20 pub size_bytes: i64,
21 pub width: i32,
22 pub height: i32,
23 pub alt: Option<String>,
24 pub created_at: chrono::DateTime<chrono::Utc>,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
29pub struct AssetRef {
30 pub post_id: i32,
31 pub title: String,
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
36pub struct AssetDto {
37 #[serde(flatten)]
38 pub asset: Asset,
39 pub ref_count: i64,
40 pub refs: Vec<AssetRef>,
41}
42
43#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Default)]
45pub enum AssetFilter {
46 #[default]
47 All,
48 Used,
49 Orphan,
50}
51
52#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Default)]
54pub enum AssetSort {
55 #[default]
56 CreatedDesc,
57 SizeDesc,
58}