Skip to main content

paperless_api/
custom_field.rs

1use serde::{Deserialize, Serialize};
2
3use crate::id::{CustomFieldId, SelectableOptionId};
4
5/// Custom field definition.
6#[derive(Debug, Clone, Deserialize)]
7pub struct CustomField {
8    /// Unique identifier of the custom field.
9    pub id: CustomFieldId,
10
11    /// Name of the custom field.
12    pub name: String,
13
14    /// Data type of the custom field.
15    pub data_type: String,
16
17    pub extra_data: Option<CustomFieldExtraData>,
18}
19
20/// Custom field value of an existing document
21#[derive(Debug, Clone, Deserialize, Serialize)]
22pub struct DocumentCustomField {
23    /// Unique identifier of the custom field.
24    pub field: CustomFieldId,
25
26    /// Value of the custom field.
27    pub value: String,
28}
29
30#[derive(Debug, Clone, Deserialize, Serialize)]
31pub struct CustomFieldExtraData {
32    pub default_currency: Option<String>,
33    pub select_options: Option<Vec<SelectableOption>>,
34}
35
36#[derive(Debug, Clone, Deserialize, Serialize)]
37pub struct SelectableOption {
38    pub id: SelectableOptionId,
39    pub label: String,
40}