yggdrasil/api/assets/
types.rs1use serde::{Deserialize, Serialize};
4
5use crate::models::asset::AssetDto;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct AssetListResponse {
13 pub assets: Vec<AssetDto>,
14 pub total: i64,
16 pub used_count: i64,
18 pub orphan_count: i64,
20 pub purgeable_count: i64,
22 pub purgeable_bytes: i64,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct AssetOpResponse {
31 pub success: bool,
32 pub message: String,
33 pub refs: Vec<crate::models::asset::AssetRef>,
35}
36
37#[cfg(any(feature = "server", test))]
38impl AssetOpResponse {
39 pub fn ok(message: String) -> Self {
40 Self {
41 success: true,
42 message,
43 refs: Vec::new(),
44 }
45 }
46
47 pub fn err(message: String) -> Self {
48 Self {
49 success: false,
50 message,
51 refs: Vec::new(),
52 }
53 }
54}
55
56#[derive(Debug, Clone, Serialize, Deserialize)]
58pub struct PurgeOrphansResponse {
59 pub success: bool,
60 pub message: String,
61 pub deleted_count: i64,
62 pub freed_bytes: i64,
63 pub failures: i64,
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
69pub struct BatchDeleteAssetsResponse {
70 pub success: bool,
71 pub message: String,
72 pub deleted_count: i64,
73 pub skipped_referenced: i64,
75 pub freed_bytes: i64,
76 pub failures: i64,
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize)]
82pub struct RebuildAssetsResponse {
83 pub success: bool,
84 pub message: String,
85 pub scanned: i64,
87 pub inserted: i64,
89 pub updated: i64,
91 pub removed: i64,
93 pub ref_count: i64,
95 pub skipped: i64,
97}