timesheetlib/dto/
leave_request.rs1use crate::enums::leave_status::LeaveStatus;
2use crate::enums::leave_type::LeaveType;
3use chrono::naive::serde::ts_milliseconds;
4use chrono::NaiveDateTime;
5use common::entity::DtoReq;
6use serde::{Deserialize, Serialize};
7use uuid::Uuid;
8
9#[derive(Serialize, Deserialize, Debug, Clone)]
10#[serde(rename_all = "camelCase")]
11pub struct LeaveRequest {
12 pub id: Option<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 pub comment: Option<String>,
20 pub approver: Option<Uuid>,
21 pub department_id: Uuid,
22 pub org_id : Uuid,
23 pub leave_type : Option<LeaveType>
24}
25
26impl DtoReq for LeaveRequest {}