koprogo_api/application/dto/
expense_dto.rs1use crate::domain::entities::{ExpenseCategory, PaymentStatus};
2use serde::{Deserialize, Serialize};
3use validator::Validate;
4
5#[derive(Debug, Deserialize, Validate, Clone)]
6pub struct CreateExpenseDto {
7 pub organization_id: String,
8 pub building_id: String,
9 pub category: ExpenseCategory,
10
11 #[validate(length(min = 1))]
12 pub description: String,
13
14 #[validate(range(min = 0.01))]
15 pub amount: f64,
16
17 pub expense_date: String,
18 pub supplier: Option<String>,
19 pub invoice_number: Option<String>,
20}
21
22#[derive(Debug, Serialize)]
23pub struct ExpenseResponseDto {
24 pub id: String,
25 pub building_id: String,
26 pub category: ExpenseCategory,
27 pub description: String,
28 pub amount: f64,
29 pub expense_date: String,
30 pub payment_status: PaymentStatus,
31 pub supplier: Option<String>,
32 pub invoice_number: Option<String>,
33}