use crate::api::endpoints::PathPart;
use chrono::{DateTime, Utc};
use macros::make_path_parts;
use serde::{Deserialize, Serialize};
use url::Url;
use uuid::Uuid;
use crate::media::MediaKind;
make_path_parts!(MediaCreatePath => "/v1/media/image/url");
#[derive(Serialize, Deserialize, Debug)]
pub struct UrlCreatedResponse {
pub id: Uuid,
pub kind: MediaKind,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct WebMediaUrlCreateRequest {
pub url: Url,
}
make_path_parts!(MediaUrlGetPath => "/v1/media/url/{}" => Url);
make_path_parts!(MediaIdGetPath => "/v1/media/id/{}" => Uuid);
#[derive(Serialize, Deserialize, Debug)]
pub struct WebMediaMetadataResponse {
pub id: Uuid,
pub kind: MediaKind,
pub urls: Vec<Url>,
pub created_at: DateTime<Utc>,
pub updated_at: Option<DateTime<Utc>>,
}
make_path_parts!(MediaUrlDeletePath => "/v1/media/url/{}" => Url);
make_path_parts!(MediaIdDeletePath => "/v1/media/id/{}" => Uuid);