competitionlib/dto/
division_response.rsuse common::enums::gender::Gender;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use enums::participants_visibility::ParticipantsVisibility;
use enums::leaderboard_visibility::LeaderboardVisibility;
use enums::participant_type::ParticipantType;
use crate::enums;
use crate::jsonb::participant_jsonb::ParticipantJsonb;
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct DivisionResponse {
pub id: Uuid,
pub gender: Gender,
#[serde(skip_serializing_if = "Option::is_none")]
pub participant_type: Option<Vec<ParticipantType>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub min_number_teams: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub min_member_teams: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub additional_info: Option<String>,
pub competition_id: Uuid,
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub age: Option<i32>,
pub participants_visibility: ParticipantsVisibility,
#[serde(skip_serializing_if = "Option::is_none")]
pub leaderboard_visibility: Option<LeaderboardVisibility>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_number_teams: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_member_teams: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub year_level: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub participants: Option<Vec<ParticipantJsonb>>,
}