koprogo_api/application/dto/
building_dto.rs

1use 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}