timesheetlib/dto/
leave_response.rs1use crate::enums::leave_status::LeaveStatus;
2use crate::enums::leave_type::LeaveType;
3use chrono::naive::serde::ts_milliseconds;
4use chrono::NaiveDateTime;
5use common::entity::DtoResp;
6use serde::{Deserialize, Serialize};
7use uuid::Uuid;
8
9#[derive(Serialize, Deserialize, Debug, Clone)]
10#[serde(rename_all = "camelCase")]
11pub struct LeaveResponse {
12 pub id: Uuid,
13 pub user_id: Uuid,
14 pub status: LeaveStatus,
15 #[serde(with = "ts_milliseconds")]
16 pub start_date: NaiveDateTime,
17 #[serde(with = "ts_milliseconds")]
18 pub end_date: NaiveDateTime,
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub comment: Option<String>,
21 pub approver: Option<Uuid>,
22 pub department_id: Uuid,
23 pub org_id : Uuid,
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub leave_type : Option<LeaveType>
26}
27
28impl DtoResp for LeaveResponse {}