use serde::{Deserialize, Serialize};
#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
pub enum FmRoot {
#[default]
DcsSavedGames,
AerosimicsAtcAbm,
}
#[derive(Debug, Serialize)]
pub(crate) struct FilePathQuery {
pub root: FmRoot,
pub path: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FileInfo {
pub name: String,
pub path: String,
pub is_directory: bool,
pub size: Option<u64>,
pub modified: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FileListResponse {
pub files: Vec<FileInfo>,
pub current_path: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct MoveFileRequest {
pub root: FmRoot,
pub source: String,
pub destination: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FileUploadRequest {
pub path: String,
pub content: Vec<u8>,
pub overwrite: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FileDownloadResponse {
pub content: Vec<u8>,
pub filename: String,
}