timesheetlib/dto/
leave_request.rs

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