koprogo_api/application/dto/
unit_dto.rs1use 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}