2025-12-15 19:26:31 +01:00
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
|
|
2025-12-15 21:10:45 +01:00
|
|
|
|
|
|
|
|
// Request to trigger a Library scan
|
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
|
|
|
pub struct LibraryScanRequest {
|
|
|
|
|
// Force rescan of all files, ignoring modification timestamps
|
|
|
|
|
#[serde(default)]
|
|
|
|
|
pub force_rescan: bool,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2025-12-15 19:26:31 +01:00
|
|
|
// Scan result with statistics
|
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
|
|
|
|
|
pub struct LibraryScanResult {
|
|
|
|
|
pub files_scanned: usize,
|
2025-12-18 15:55:54 +01:00
|
|
|
pub groups_scanned: usize,
|
2025-12-15 19:26:31 +01:00
|
|
|
pub files_added: usize,
|
|
|
|
|
pub files_updated: usize,
|
|
|
|
|
pub files_removed: usize,
|
|
|
|
|
pub errors: usize,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
|
|
|
|
|
pub enum LibraryScanSummaryStatus {
|
|
|
|
|
Success,
|
|
|
|
|
Error,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Response for Library scan
|
|
|
|
|
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
|
|
|
|
|
pub struct LibraryScanSummary {
|
|
|
|
|
pub status: LibraryScanSummaryStatus,
|
|
|
|
|
pub message: String,
|
|
|
|
|
pub result: Option<LibraryScanResult>,
|
|
|
|
|
}
|
|
|
|
|
|
2025-12-15 21:10:45 +01:00
|
|
|
#[derive(Default, Debug, Clone, Deserialize, Serialize, PartialEq)]
|
2025-12-15 19:26:31 +01:00
|
|
|
pub struct LibraryStatus {
|
|
|
|
|
pub enabled: bool,
|
|
|
|
|
pub total_items: usize,
|
|
|
|
|
pub movies: usize,
|
|
|
|
|
pub series: usize,
|
|
|
|
|
pub path: Option<String>,
|
|
|
|
|
}
|