koprogo_api/application/dto/
unit_dto.rs

1use crate::domain::entities::UnitType;
2use serde::{Deserialize, Serialize};
3use validator::Validate;
4
5#[derive(Debug, Deserialize, Validate, Clone)]
6pub struct CreateUnitDto {
7    pub organization_id: String,
8    pub building_id: String,
9
10    #[validate(length(min = 1))]
11    pub unit_number: String,
12
13    pub unit_type: UnitType,
14    pub floor: Option<i32>,
15
16    #[validate(range(min = 0.1))]
17    pub surface_area: f64,
18
19    #[validate(range(min = 0.1, max = 1000.0))]
20    pub quota: f64,
21}
22
23#[derive(Debug, Deserialize, Validate, Clone)]
24pub struct UpdateUnitDto {
25    #[validate(length(min = 1))]
26    pub unit_number: String,
27
28    pub unit_type: UnitType,
29    pub floor: i32,
30
31    #[validate(range(min = 0.1))]
32    pub surface_area: f64,
33
34    #[validate(range(min = 0.1, max = 1000.0))]
35    pub quota: f64,
36}
37
38#[derive(Debug, Serialize)]
39pub struct UnitResponseDto {
40    pub id: String,
41    pub building_id: String,
42    pub unit_number: String,
43    pub unit_type: UnitType,
44    pub floor: Option<i32>,
45    pub surface_area: f64,
46    pub quota: f64,
47    pub owner_id: Option<String>,
48}