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
37impl AssetOpResponse {
38 pub fn ok(message: String) -> Self {
39 Self {
40 success: true,
41 message,
42 refs: Vec::new(),
43 }
44 }
45
46 pub fn err(message: String) -> Self {
47 Self {
48 success: false,
49 message,
50 refs: Vec::new(),
51 }
52 }
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize)]
57pub struct PurgeOrphansResponse {
58 pub success: bool,
59 pub message: String,
60 pub deleted_count: i64,
61 pub freed_bytes: i64,
62 pub failures: i64,
64}
65
66#[derive(Debug, Clone, Serialize, Deserialize)]
68pub struct BatchDeleteAssetsResponse {
69 pub success: bool,
70 pub message: String,
71 pub deleted_count: i64,
72 pub skipped_referenced: i64,
74 pub freed_bytes: i64,
75 pub failures: i64,
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct RebuildAssetsResponse {
82 pub success: bool,
83 pub message: String,
84 pub scanned: i64,
86 pub inserted: i64,
88 pub updated: i64,
90 pub removed: i64,
92 pub ref_count: i64,
94}