use serde::{Deserialize, Serialize};
use uuid::Uuid;
use chrono::{DateTime, Utc, NaiveDate};
use crate::domain::entity::*;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct DigestDigestId(pub Uuid);
impl DigestDigestId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for DigestDigestId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<DigestDigestId> for Uuid {
fn from(id: DigestDigestId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestDto {
pub id: DigestDigestId,
pub name: String,
pub periodicity: DigestPeriodicity,
pub next_run_date: Option<NaiveDate>,
pub state: DigestState,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestSummary {
pub id: DigestDigestId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestRef {
pub id: DigestDigestId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct DigestSubscriptionId(pub Uuid);
impl DigestSubscriptionId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for DigestSubscriptionId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<DigestSubscriptionId> for Uuid {
fn from(id: DigestSubscriptionId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestSubscriptionDto {
pub id: DigestSubscriptionId,
pub digest_id: Uuid,
pub user_id: Uuid,
pub state: DigestSubscriptionState,
pub unsubscribed_at: Option<DateTime<Utc>>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestSubscriptionSummary {
pub id: DigestSubscriptionId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestSubscriptionRef {
pub id: DigestSubscriptionId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct DigestDigestKpiId(pub Uuid);
impl DigestDigestKpiId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for DigestDigestKpiId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<DigestDigestKpiId> for Uuid {
fn from(id: DigestDigestKpiId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestKpiDto {
pub id: DigestDigestKpiId,
pub digest_id: Uuid,
pub kpi_key: String,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestKpiSummary {
pub id: DigestDigestKpiId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestDigestKpiRef {
pub id: DigestDigestKpiId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct DigestTipId(pub Uuid);
impl DigestTipId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for DigestTipId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<DigestTipId> for Uuid {
fn from(id: DigestTipId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipDto {
pub id: DigestTipId,
pub sequence: i32,
pub name: String,
pub tip_description: String,
pub group_key: Option<String>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipSummary {
pub id: DigestTipId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipRef {
pub id: DigestTipId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct DigestTipUserId(pub Uuid);
impl DigestTipUserId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for DigestTipUserId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<DigestTipUserId> for Uuid {
fn from(id: DigestTipUserId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipUserDto {
pub id: DigestTipUserId,
pub tip_id: Uuid,
pub user_id: Uuid,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipUserSummary {
pub id: DigestTipUserId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DigestTipUserRef {
pub id: DigestTipUserId,
}