sociallib/dto/
picture_response.rs

1use chrono::naive::serde::ts_milliseconds;
2use chrono::NaiveDateTime;
3use common::enums::status::Status;
4use serde::{Deserialize, Serialize};
5use uuid::Uuid;
6use common::entity::DtoResp;
7
8use crate::dto::comment_response::CommentResponse;
9
10#[derive(Serialize, Deserialize, Debug, Clone)]
11#[serde(rename_all = "camelCase")]
12pub struct PictureResponse {
13    pub id: Uuid,
14    pub path: String,
15    pub album: Uuid,
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub title: Option<String>,
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub description: Option<String>,
20    #[serde(skip_serializing_if = "Option::is_none")]
21    pub lat: Option<f64>,
22    #[serde(skip_serializing_if = "Option::is_none")]
23    pub lng: Option<f64>,
24    pub owner: Uuid,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub status: Option<Status>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub access: Option<String>,
29    pub commentable: bool,
30    #[serde(skip_serializing_if = "Option::is_none")]
31    pub likes: Option<Vec<Uuid>>,
32    pub comments: Vec<CommentResponse>,
33    #[serde(with = "ts_milliseconds")]
34    pub date: NaiveDateTime,
35}
36
37impl DtoResp for PictureResponse {}