use serde::{Deserialize, Serialize};
use crate::sync::mode::SyncMode;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UpsertBookRequest {
pub content_hash: String,
#[serde(default)]
pub title: String,
#[serde(default)]
pub author: String,
#[serde(default)]
pub format: String,
#[serde(default)]
pub size_bytes: i64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sync_mode: Option<SyncMode>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SetSyncModeRequest {
pub sync_mode: SyncMode,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UpsertBookResponse {
pub content_hash: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct BookDto {
pub content_hash: String,
pub title: String,
pub author: String,
pub format: String,
pub size_bytes: i64,
pub updated_at: i64,
#[serde(default)]
pub sync_mode: SyncMode,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PutBlobResponse {
pub byte_len: u64,
pub sha256: String,
}