timesheetlib/jsonb/
payment.rs

1use crate::enums::payment_status::PaymentStatus;
2use chrono::naive::serde::ts_milliseconds;
3use chrono::NaiveDateTime;
4use postgres_types::{FromSql, ToSql};
5use serde::{Deserialize, Serialize};
6use uuid::Uuid;
7
8#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, ToSql, FromSql)]
9#[serde(rename_all = "camelCase")]
10pub struct Payment {
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub id : Option<Uuid>,
13    pub amount : f64,
14    #[serde(with = "ts_milliseconds")]
15    pub date : NaiveDateTime,
16    pub status : PaymentStatus,
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub comment : Option<String>,
19}