courselib/dto/
participants_response.rsuse chrono::naive::serde::ts_milliseconds;
use chrono::NaiveDateTime;
use common::enums::invoice_status::InvoiceStatus;
use serde::{Deserialize, Serialize};
use serde_json;
use uuid::Uuid;
use crate::jsonb::participant_progress::ParticipantProgress;
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct ParticipantResponse {
pub id: Uuid,
#[serde(skip_serializing_if = "Option::is_none")]
pub ver: Option<i32>,
pub course: Uuid,
pub participant: Uuid,
pub status: String,
#[serde(with = "ts_milliseconds")]
pub registration_date: NaiveDateTime,
#[serde(skip_serializing_if = "Option::is_none")]
pub invited_by: Option<Uuid>,
pub payment_status: InvoiceStatus,
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub certificate: Option<Uuid>,
#[serde(skip_serializing_if = "Option::is_none")]
pub progress: Option<Vec<ParticipantProgress>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub payment: Option<Uuid>,
}