koprogo_api/application/dto/
building_dto.rs1use serde::{Deserialize, Serialize};
2use validator::Validate;
3
4#[derive(Debug, Serialize, Deserialize, Validate, Clone)]
5pub struct CreateBuildingDto {
6 pub organization_id: String,
7
8 #[validate(length(min = 1, message = "Name cannot be empty"))]
9 pub name: String,
10
11 #[validate(length(min = 1))]
12 pub address: String,
13
14 #[validate(length(min = 1))]
15 pub city: String,
16
17 #[validate(length(min = 1))]
18 pub postal_code: String,
19
20 #[validate(length(min = 1))]
21 pub country: String,
22
23 #[validate(range(min = 1, message = "Total units must be greater than 0"))]
24 pub total_units: i32,
25
26 pub construction_year: Option<i32>,
27}
28
29#[derive(Debug, Serialize, Deserialize, Validate, Clone)]
30pub struct UpdateBuildingDto {
31 #[validate(length(min = 1))]
32 pub name: String,
33
34 #[validate(length(min = 1))]
35 pub address: String,
36
37 #[validate(length(min = 1))]
38 pub city: String,
39
40 #[validate(length(min = 1))]
41 pub postal_code: String,
42}
43
44#[derive(Debug, Serialize)]
45pub struct BuildingResponseDto {
46 pub id: String,
47 pub name: String,
48 pub address: String,
49 pub city: String,
50 pub postal_code: String,
51 pub country: String,
52 pub total_units: i32,
53 pub construction_year: Option<i32>,
54 pub created_at: String,
55 pub updated_at: String,
56}