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, Clone, Deserialize, Serialize, CreateDto, UpdateDto, Item)]
12pub struct Tag {
13 #[dto(skip)]
15 pub id: TagId,
16
17 #[dto(skip)]
19 pub slug: String,
20
21 pub name: String,
23
24 pub color: String,
26
27 #[dto(skip)]
29 pub text_color: String,
30
31 #[serde(rename = "match")]
33 pub match_pattern: String,
34
35 pub matching_algorithm: MatchAlgorithm,
37
38 pub is_insensitive: bool,
40
41 pub is_inbox_tag: bool,
43
44 #[dto(skip)]
46 #[serde(default)]
47 pub document_count: u32,
48
49 pub owner: Option<crate::id::UserId>,
51
52 pub parent: Option<TagId>,
54
55 #[dto(skip)]
57 pub children: Vec<Box<Tag>>,
58
59 #[dto(skip)]
61 #[serde(flatten)]
62 pub permissions: super::permission::ItemPermissions,
63}