Can create a family member
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
use std::time::Duration;
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
#[derive(Debug, Copy, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub struct SizeConstraint {
|
||||
min: usize,
|
||||
max: usize,
|
||||
@ -17,6 +17,23 @@ impl SizeConstraint {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||
pub struct NumberValueConstraint {
|
||||
min: i64,
|
||||
max: i64,
|
||||
}
|
||||
|
||||
impl NumberValueConstraint {
|
||||
pub fn new(min: i64, max: i64) -> Self {
|
||||
Self { min, max }
|
||||
}
|
||||
|
||||
pub fn validate(&self, val: impl Into<i64>) -> bool {
|
||||
let val = val.into();
|
||||
val >= self.min && val <= self.max
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, serde::Serialize)]
|
||||
pub struct StaticConstraints {
|
||||
pub mail_len: SizeConstraint,
|
||||
@ -24,6 +41,22 @@ pub struct StaticConstraints {
|
||||
pub password_len: SizeConstraint,
|
||||
pub family_name_len: SizeConstraint,
|
||||
pub invitation_code_len: SizeConstraint,
|
||||
|
||||
pub member_first_name: SizeConstraint,
|
||||
pub member_last_name: SizeConstraint,
|
||||
pub member_birth_last_name: SizeConstraint,
|
||||
pub member_email: SizeConstraint,
|
||||
pub member_phone: SizeConstraint,
|
||||
pub member_address: SizeConstraint,
|
||||
pub member_city: SizeConstraint,
|
||||
pub member_postal_code: SizeConstraint,
|
||||
pub member_country: SizeConstraint,
|
||||
pub member_sex: SizeConstraint,
|
||||
pub member_note: SizeConstraint,
|
||||
|
||||
pub date_year: NumberValueConstraint,
|
||||
pub date_month: NumberValueConstraint,
|
||||
pub date_day: NumberValueConstraint,
|
||||
}
|
||||
|
||||
impl Default for StaticConstraints {
|
||||
@ -37,6 +70,20 @@ impl Default for StaticConstraints {
|
||||
FAMILY_INVITATION_CODE_LEN,
|
||||
FAMILY_INVITATION_CODE_LEN,
|
||||
),
|
||||
member_first_name: SizeConstraint::new(0, 30),
|
||||
member_last_name: SizeConstraint::new(0, 30),
|
||||
member_birth_last_name: SizeConstraint::new(0, 30),
|
||||
member_email: SizeConstraint::new(0, 255),
|
||||
member_phone: SizeConstraint::new(0, 30),
|
||||
member_address: SizeConstraint::new(0, 155),
|
||||
member_city: SizeConstraint::new(0, 150),
|
||||
member_postal_code: SizeConstraint::new(0, 12),
|
||||
member_country: SizeConstraint::new(0, 2),
|
||||
member_sex: SizeConstraint::new(0, 1),
|
||||
member_note: SizeConstraint::new(0, 35000),
|
||||
date_year: NumberValueConstraint::new(1, 2050),
|
||||
date_month: NumberValueConstraint::new(1, 12),
|
||||
date_day: NumberValueConstraint::new(1, 31),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user