dialtone_common 0.1.0

Dialtone Common Code
Documentation
use crate::ap::ap_object::{ApObject, ApObjectAddresses, ApObjectMediaType, ApObjectType};
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct OwnedApObject {
    pub ap: ApObject,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub owner_data: Option<ApObjectOwnerData>,

    pub created_at: DateTime<Utc>,

    pub modified_at: DateTime<Utc>,
}

#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct ApObjectOwnerData {}

/// This struct is used to create an ApObject.
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct CreateOwnedApObject {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,

    #[serde(rename = "mediaType")]
    #[serde(skip_serializing_if = "Option::is_none")]
    pub media_type: Option<ApObjectMediaType>,

    #[serde(rename = "type")]
    pub ap_type: ApObjectType,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub content: Option<String>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub summary: Option<String>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub owner_data: Option<ApObjectOwnerData>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub to: Option<ApObjectAddresses>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub cc: Option<ApObjectAddresses>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub bto: Option<ApObjectAddresses>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub bcc: Option<ApObjectAddresses>,
}

/// This struct is used to update an ApObject.
#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct UpdateOwnedApObject {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub content: Option<String>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub summary: Option<String>,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub owner_data: Option<ApObjectOwnerData>,
}

#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub enum ApObjectVisibilityType {
    Visible,
    Invisible,
}

#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct ApObjectSystemInfo {
    pub ap_object_id: String,

    pub ap_object_type: ApObjectType,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub actor_owner: Option<String>,

    pub visibility: ApObjectVisibilityType,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub system_data: Option<ApObjectSystemData>,
}

#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct ApObjectSystemData {}

#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
pub struct ApObjectPage {
    pub min_modified_at: DateTime<Utc>,
    pub max_modified_at: DateTime<Utc>,
    pub page_values: Vec<ApObject>,
}