timesheetlib/jsonb/
payment.rs1use 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}