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}