paperless_api/metadata/
tag.rs1use serde::{Deserialize, Serialize};
4
5use paperless_api_macros::{CreateDto, Item, UpdateDto};
6
7use super::MatchAlgorithm;
8use crate::id::TagId;
9
10#[derive(Debug, Default, Clone, Deserialize, Serialize, CreateDto, UpdateDto, Item)]
12#[api_info(endpoint = "tags")]
13pub struct Tag {
14 #[dto(skip)]
16 pub id: TagId,
17
18 #[dto(skip)]
20 pub slug: String,
21
22 pub name: String,
24
25 pub color: String,
27
28 #[dto(skip)]
30 pub text_color: String,
31
32 #[serde(rename = "match")]
34 pub match_pattern: String,
35
36 pub matching_algorithm: MatchAlgorithm,
38
39 pub is_insensitive: bool,
41
42 pub is_inbox_tag: bool,
44
45 #[dto(skip)]
47 #[serde(default)]
48 pub document_count: u32,
49
50 pub owner: Option<crate::id::UserId>,
52
53 pub parent: Option<TagId>,
55
56 #[dto(skip)]
58 pub children: Vec<Box<Tag>>,
59
60 #[dto(skip)]
62 #[serde(flatten)]
63 pub permissions: super::permission::ItemPermissions,
64}