forumlib/dto/
question_request.rsuse chrono::naive::serde::ts_milliseconds;
use chrono::NaiveDateTime;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use common::utils::serialize_option_naive_date;
use crate::enums::question_status::QuestionStatus;
use crate::jsonb::answer::Answer;
use crate::jsonb::comment::Comment;
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct QuestionRequest {
pub id: Option<Uuid>,
pub ver: Option<i32>,
pub rstatus: Option<String>,
pub description: String,
pub author: Uuid,
pub tags: Option<Vec<String>>,
#[serde(with = "ts_milliseconds")]
pub created: NaiveDateTime,
pub likes: Option<Vec<Uuid>>,
pub answers: Option<Vec<Answer>>,
pub comments: Option<Vec<Comment>>,
pub watchers: Option<Vec<Uuid>>,
pub status : QuestionStatus,
pub dislikes: Option<Vec<Uuid>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
#[serde(with = "serialize_option_naive_date")]
pub updated: Option<NaiveDateTime>,
pub roles: Option<Vec<String>>,
pub title : String,
pub anonymous: Option<bool>,
pub organization: Option<Uuid>,
}