userlib/jsonb/
parent.rs

1use crate::enums::aboriginality_type::AboriginalityType;
2use crate::enums::occupation_type::OccupationType;
3use crate::enums::qualification_type::QualificationType;
4use crate::enums::schooling_type::SchoolingType;
5use chrono::NaiveDateTime;
6use common::utils::serialize_option_naive_date;
7use postgres_types::{FromSql, ToSql};
8use serde::{Deserialize, Serialize};
9
10#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, FromSql, ToSql)]
11#[serde(rename_all = "camelCase")]
12pub struct ParentForm {
13    pub lives: bool,
14    pub title: String,
15    pub gender: String,
16    pub relationship: String,
17    pub family_name: String,
18    pub given_name: String,
19    #[serde(default)]
20    #[serde(with = "serialize_option_naive_date")]
21    pub birth_date: Option<NaiveDateTime>,
22    pub country_of_birth: String,
23    pub aboriginality: AboriginalityType,
24    pub occupation_group: OccupationType,
25    pub occupation: Option<String>,
26    pub schooling_type: SchoolingType,
27    pub qualification: QualificationType,
28    pub other_languages: bool,
29    pub other_main_lang: Option<String>,
30    pub other_langs: Option<String>,
31    pub interviews: bool,
32    pub address: String,
33    pub address_to_enrol: bool,
34    pub correspondence_address: Option<String>,
35    pub name: String,
36    pub mobile_phone: Option<String>,
37    pub comments_mobile: Option<String>,
38    pub home_phone: Option<String>,
39    pub comments_home: Option<String>,
40    pub work_phone: Option<String>,
41    pub comments_work: Option<String>,
42    pub email: String,
43    pub key: i32,
44}