use serde::{Deserialize, Serialize};
use paperless_api_macros::{CreateDto, Item, UpdateDto};
use super::MatchAlgorithm;
use super::permission::ItemPermissions;
#[derive(Debug, Default, Clone, Deserialize, Serialize, CreateDto, UpdateDto, Item)]
#[api_info(endpoint = "correspondents")]
pub struct Correspondent {
#[dto(skip)]
pub id: crate::id::CorrespondentId,
#[dto(skip)]
pub slug: String,
pub name: String,
#[serde(rename = "match")]
pub match_pattern: String,
pub matching_algorithm: MatchAlgorithm,
pub is_insensitive: bool,
#[dto(skip)]
#[serde(default)]
pub document_count: u32,
#[dto(skip)]
pub owner: Option<crate::id::UserId>,
#[dto(skip)]
#[serde(flatten)]
pub permissions: ItemPermissions,
}