use serde::{Deserialize, Serialize};
use crate::id::{CustomFieldId, SelectableOptionId};
#[derive(Debug, Clone, Deserialize)]
pub struct CustomField {
pub id: CustomFieldId,
pub name: String,
pub data_type: String,
pub extra_data: Option<CustomFieldExtraData>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct DocumentCustomField {
pub field: CustomFieldId,
pub value: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct CustomFieldExtraData {
pub default_currency: Option<String>,
pub select_options: Option<Vec<SelectableOption>>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct SelectableOption {
pub id: SelectableOptionId,
pub label: String,
}