courselib/dto/
programm_response.rsuse serde::{Deserialize, Serialize};
use uuid::Uuid;
use crate::enums::course_role::CourseRole;
use crate::jsonb::comment::Comment;
use crate::jsonb::module::Module;
use crate::jsonb::status_history::StatusHistory;
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct ProgrammResponse {
pub id: Uuid,
#[serde(skip_serializing_if = "Option::is_none")]
pub ver: Option<i32>,
pub title: String,
pub description: String,
pub picture: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub subjects: Option<Vec<String>>,
pub organization: Uuid,
pub status: String,
pub available_below: Uuid,
pub author: Uuid,
#[serde(skip_serializing_if = "Option::is_none")]
pub parent: Option<Uuid>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status_history: Option<diesel_json::Json<Vec<StatusHistory>>>,
pub template: Uuid,
#[serde(skip_serializing_if = "Option::is_none")]
pub modules: Option<diesel_json::Json<Vec<Module>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub years: Option<Vec<i32>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comments: Option<Vec<Comment>>,
pub co_authors: Vec<Uuid>,
pub for_roles: Vec<CourseRole>,
}