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 MailActivityId(pub Uuid);
impl MailActivityId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailActivityId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailActivityId> for Uuid {
fn from(id: MailActivityId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityDto {
pub id: MailActivityId,
pub res_model: String,
pub res_id: Uuid,
pub res_model_id: Option<Uuid>,
pub activity_type_id: Option<Uuid>,
pub summary: Option<String>,
pub note: Option<String>,
pub date_deadline: NaiveDate,
pub user_id: Uuid,
pub requested_user_id: Option<Uuid>,
pub state: MailActivityState,
pub active: bool,
pub has_recommended_activities: bool,
pub chained_next_activity: Option<serde_json::Value>,
pub calendar_event_id: Option<Uuid>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivitySummary {
pub id: MailActivityId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityRef {
pub id: MailActivityId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailActivityTypeId(pub Uuid);
impl MailActivityTypeId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailActivityTypeId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailActivityTypeId> for Uuid {
fn from(id: MailActivityTypeId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityTypeDto {
pub id: MailActivityTypeId,
pub name: String,
pub summary: Option<String>,
pub note: Option<String>,
pub category: Option<MailActivityCategory>,
pub chaining_type: MailActivityChainingType,
pub delay_count: i32,
pub delay_unit: MailActivityDelayUnit,
pub delay_from: MailActivityDelayFrom,
pub default_user_id: Option<Uuid>,
pub default_note: Option<String>,
pub icon: Option<String>,
pub res_model: Option<String>,
pub res_model_id: Option<Uuid>,
pub active: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityTypeSummary {
pub id: MailActivityTypeId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityTypeRef {
pub id: MailActivityTypeId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailActivityPlanId(pub Uuid);
impl MailActivityPlanId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailActivityPlanId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailActivityPlanId> for Uuid {
fn from(id: MailActivityPlanId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityPlanDto {
pub id: MailActivityPlanId,
pub name: String,
pub res_model: Option<String>,
pub res_model_id: Option<Uuid>,
pub active: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityPlanSummary {
pub id: MailActivityPlanId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityPlanRef {
pub id: MailActivityPlanId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailActivityPlanTemplateId(pub Uuid);
impl MailActivityPlanTemplateId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailActivityPlanTemplateId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailActivityPlanTemplateId> for Uuid {
fn from(id: MailActivityPlanTemplateId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityPlanTemplateDto {
pub id: MailActivityPlanTemplateId,
pub plan_id: Uuid,
pub activity_type_id: Uuid,
pub summary: Option<String>,
pub note: Option<String>,
pub delay_count: Option<i32>,
pub delay_unit: Option<MailActivityDelayUnit>,
pub user_id: Option<Uuid>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityPlanTemplateSummary {
pub id: MailActivityPlanTemplateId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailActivityPlanTemplateRef {
pub id: MailActivityPlanTemplateId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailAliasDomainId(pub Uuid);
impl MailAliasDomainId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailAliasDomainId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailAliasDomainId> for Uuid {
fn from(id: MailAliasDomainId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailAliasDomainDto {
pub id: MailAliasDomainId,
pub name: String,
pub catchall_alias: Option<String>,
pub bounce_alias: Option<String>,
pub bounce_alias_email: Option<String>,
pub catchall_alias_email: Option<String>,
pub use_mx: bool,
pub mail_server_id: Option<Uuid>,
pub from_filter: Option<String>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailAliasDomainSummary {
pub id: MailAliasDomainId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailAliasDomainRef {
pub id: MailAliasDomainId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailAliasId(pub Uuid);
impl MailAliasId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailAliasId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailAliasId> for Uuid {
fn from(id: MailAliasId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailAliasDto {
pub id: MailAliasId,
pub alias_name: Option<String>,
pub alias_domain_id: Option<Uuid>,
pub alias_contact: MailAliasContact,
pub alias_model_id: Option<Uuid>,
pub alias_parent_model_id: Option<Uuid>,
pub alias_parent_thread_id: Option<Uuid>,
pub alias_user_id: Option<Uuid>,
pub alias_defaults: Option<String>,
pub alias_force_thread_id: Option<Uuid>,
pub alias_reply_to_address: Option<String>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailAliasSummary {
pub id: MailAliasId,
pub alias_name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailAliasRef {
pub id: MailAliasId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailAttachmentId(pub Uuid);
impl MailAttachmentId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailAttachmentId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailAttachmentId> for Uuid {
fn from(id: MailAttachmentId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailAttachmentDto {
pub id: MailAttachmentId,
pub name: String,
pub mimetype: Option<String>,
pub size: Option<i32>,
pub datas: Option<String>,
pub checksum: Option<String>,
pub access_token: Option<Uuid>,
pub owner_party_id: Option<Uuid>,
pub owner_guest_id: Option<Uuid>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailAttachmentSummary {
pub id: MailAttachmentId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailAttachmentRef {
pub id: MailAttachmentId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailMessageAttachmentId(pub Uuid);
impl MailMessageAttachmentId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailMessageAttachmentId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailMessageAttachmentId> for Uuid {
fn from(id: MailMessageAttachmentId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageAttachmentDto {
pub id: MailMessageAttachmentId,
pub message_id: Uuid,
pub attachment_id: Uuid,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageAttachmentSummary {
pub id: MailMessageAttachmentId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageAttachmentRef {
pub id: MailMessageAttachmentId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailMessageStarId(pub Uuid);
impl MailMessageStarId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailMessageStarId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailMessageStarId> for Uuid {
fn from(id: MailMessageStarId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageStarDto {
pub id: MailMessageStarId,
pub partner_id: Uuid,
pub message_id: Uuid,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageStarSummary {
pub id: MailMessageStarId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageStarRef {
pub id: MailMessageStarId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailMessageId(pub Uuid);
impl MailMessageId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailMessageId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailMessageId> for Uuid {
fn from(id: MailMessageId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageDto {
pub id: MailMessageId,
pub subject: Option<String>,
pub date: DateTime<Utc>,
pub body: String,
pub message_type: MailMessageType,
pub subtype_id: Option<Uuid>,
pub is_internal: bool,
pub author_id: Option<Uuid>,
pub author_guest_id: Option<Uuid>,
pub email_from: Option<String>,
pub message_id: Option<String>,
pub reply_to: Option<String>,
pub model: Option<String>,
pub res_id: Option<Uuid>,
pub record_name: Option<String>,
pub moderation_status: Option<MailModerationStatus>,
pub needaction: bool,
pub has_error: bool,
pub failure_reason: Option<String>,
pub rating_value: Option<f64>,
pub pinned_at: Option<DateTime<Utc>>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageSummary {
pub id: MailMessageId,
pub record_name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageRef {
pub id: MailMessageId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailId(pub Uuid);
impl MailId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailId> for Uuid {
fn from(id: MailId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailDto {
pub id: MailId,
pub mail_message_id: Uuid,
pub state: MailState,
pub failure_type: Option<MailFailureType>,
pub scheduled_date: Option<DateTime<Utc>>,
pub auto_delete: bool,
pub failure_reason: Option<String>,
pub email_to: Option<String>,
pub email_cc: Option<String>,
pub reply_to: Option<String>,
pub headers: serde_json::Value,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailSummary {
pub id: MailId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailRef {
pub id: MailId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailNotificationId(pub Uuid);
impl MailNotificationId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailNotificationId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailNotificationId> for Uuid {
fn from(id: MailNotificationId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailNotificationDto {
pub id: MailNotificationId,
pub mail_message_id: Uuid,
pub res_partner_id: Option<Uuid>,
pub notification_type: MailNotificationType,
pub notification_status: MailNotificationStatus,
pub failure_type: Option<NotificationFailureType>,
pub failure_reason: Option<String>,
pub mail_mail_id_int: Option<Uuid>,
pub is_read: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailNotificationSummary {
pub id: MailNotificationId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailNotificationRef {
pub id: MailNotificationId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailMessageSubtypeId(pub Uuid);
impl MailMessageSubtypeId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailMessageSubtypeId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailMessageSubtypeId> for Uuid {
fn from(id: MailMessageSubtypeId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageSubtypeDto {
pub id: MailMessageSubtypeId,
pub name: String,
pub description: Option<String>,
pub internal: bool,
pub parent_id: Option<Uuid>,
pub relation_field: Option<String>,
pub res_model: Option<String>,
pub default: bool,
pub hidden: bool,
pub tracked: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageSubtypeSummary {
pub id: MailMessageSubtypeId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageSubtypeRef {
pub id: MailMessageSubtypeId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailMessageReactionId(pub Uuid);
impl MailMessageReactionId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailMessageReactionId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailMessageReactionId> for Uuid {
fn from(id: MailMessageReactionId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageReactionDto {
pub id: MailMessageReactionId,
pub message_id: Uuid,
pub content: String,
pub partner_id: Option<Uuid>,
pub guest_id: Option<Uuid>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageReactionSummary {
pub id: MailMessageReactionId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageReactionRef {
pub id: MailMessageReactionId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailFollowersId(pub Uuid);
impl MailFollowersId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailFollowersId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailFollowersId> for Uuid {
fn from(id: MailFollowersId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailFollowersDto {
pub id: MailFollowersId,
pub res_model: String,
pub res_id: Uuid,
pub partner_id: Option<Uuid>,
pub channel_id: Option<Uuid>,
pub subtype_ids: Option<serde_json::Value>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailFollowersSummary {
pub id: MailFollowersId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailFollowersRef {
pub id: MailFollowersId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailPresenceId(pub Uuid);
impl MailPresenceId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailPresenceId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailPresenceId> for Uuid {
fn from(id: MailPresenceId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailPresenceDto {
pub id: MailPresenceId,
pub user_id: Option<Uuid>,
pub guest_id: Option<Uuid>,
pub status: MailPresenceStatus,
pub last_poll: Option<DateTime<Utc>>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailPresenceSummary {
pub id: MailPresenceId,
pub status: MailPresenceStatus,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailPresenceRef {
pub id: MailPresenceId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailBlacklistId(pub Uuid);
impl MailBlacklistId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailBlacklistId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailBlacklistId> for Uuid {
fn from(id: MailBlacklistId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailBlacklistDto {
pub id: MailBlacklistId,
pub email: String,
pub opt_out_reason_id: Option<Uuid>,
pub active: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailBlacklistSummary {
pub id: MailBlacklistId,
pub email: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailBlacklistRef {
pub id: MailBlacklistId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailTrackingValueId(pub Uuid);
impl MailTrackingValueId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailTrackingValueId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailTrackingValueId> for Uuid {
fn from(id: MailTrackingValueId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailTrackingValueDto {
pub id: MailTrackingValueId,
pub mail_message_id: Uuid,
pub field: String,
pub field_desc: Option<String>,
pub field_type: Option<String>,
pub old_value_integer: Option<i32>,
pub old_value_float: Option<f64>,
pub old_value_text: Option<String>,
pub old_value_datetime: Option<DateTime<Utc>>,
pub new_value_integer: Option<i32>,
pub new_value_float: Option<f64>,
pub new_value_text: Option<String>,
pub new_value_datetime: Option<DateTime<Utc>>,
pub currency_id: Option<Uuid>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailTrackingValueSummary {
pub id: MailTrackingValueId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailTrackingValueRef {
pub id: MailTrackingValueId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct DiscussChannelId(pub Uuid);
impl DiscussChannelId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for DiscussChannelId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<DiscussChannelId> for Uuid {
fn from(id: DiscussChannelId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DiscussChannelDto {
pub id: DiscussChannelId,
pub name: Option<String>,
pub channel_type: DiscussChannelType,
pub description: Option<String>,
pub uuid: Option<String>,
pub default_access_mode: Option<String>,
pub avatar_128: Option<String>,
pub email_send: bool,
pub moderation: bool,
pub group_public_id: Option<Uuid>,
pub alias_id: Option<Uuid>,
pub last_message_id: Option<Uuid>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DiscussChannelSummary {
pub id: DiscussChannelId,
pub name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DiscussChannelRef {
pub id: DiscussChannelId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct DiscussChannelMemberId(pub Uuid);
impl DiscussChannelMemberId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for DiscussChannelMemberId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<DiscussChannelMemberId> for Uuid {
fn from(id: DiscussChannelMemberId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DiscussChannelMemberDto {
pub id: DiscussChannelMemberId,
pub channel_id: Uuid,
pub partner_id: Option<Uuid>,
pub guest_id: Option<Uuid>,
pub fold_state: Option<SidebarFoldState>,
pub fetched_message_id: Option<Uuid>,
pub new_message_separator: Option<Uuid>,
pub custom_notifications: Option<MemberCustomNotifications>,
pub mute_until_dt: Option<DateTime<Utc>>,
pub unpin_dt: Option<DateTime<Utc>>,
pub last_seen_dt: Option<DateTime<Utc>>,
pub message_unread_counter: i32,
pub unread_counter: i32,
pub message_follower_counter: i32,
pub seen_message_id: Option<Uuid>,
pub last_interest_dt: Option<DateTime<Utc>>,
pub is_pinned: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DiscussChannelMemberSummary {
pub id: DiscussChannelMemberId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DiscussChannelMemberRef {
pub id: DiscussChannelMemberId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailGuestId(pub Uuid);
impl MailGuestId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailGuestId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailGuestId> for Uuid {
fn from(id: MailGuestId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailGuestDto {
pub id: MailGuestId,
pub name: String,
pub country_id: Option<Uuid>,
pub last_connection_dt: Option<DateTime<Utc>>,
pub active: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailGuestSummary {
pub id: MailGuestId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailGuestRef {
pub id: MailGuestId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailServerId(pub Uuid);
impl MailServerId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailServerId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailServerId> for Uuid {
fn from(id: MailServerId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailServerDto {
pub id: MailServerId,
pub name: String,
pub from_filter: Option<String>,
pub smtp_host: String,
pub smtp_port: i32,
pub smtp_authentication: SmtpAuthentication,
pub smtp_user: Option<String>,
pub smtp_pass_ref: Option<String>,
pub smtp_encryption: SmtpEncryption,
pub smtp_debug: bool,
pub sequence: i32,
pub active: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailServerSummary {
pub id: MailServerId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailServerRef {
pub id: MailServerId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct FetchmailServerId(pub Uuid);
impl FetchmailServerId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for FetchmailServerId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<FetchmailServerId> for Uuid {
fn from(id: FetchmailServerId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FetchmailServerDto {
pub id: FetchmailServerId,
pub name: String,
pub active: bool,
pub state: FetchmailState,
pub default_thread_model: Option<String>,
pub priority: i32,
pub token_hash: String,
pub last_fetch_at: Option<DateTime<Utc>>,
pub error_at: Option<DateTime<Utc>>,
pub error_message: Option<String>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FetchmailServerSummary {
pub id: FetchmailServerId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FetchmailServerRef {
pub id: FetchmailServerId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailGatewayAllowedId(pub Uuid);
impl MailGatewayAllowedId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailGatewayAllowedId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailGatewayAllowedId> for Uuid {
fn from(id: MailGatewayAllowedId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailGatewayAllowedDto {
pub id: MailGatewayAllowedId,
pub fetchmail_server_id: Option<Uuid>,
pub pattern: String,
pub active: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailGatewayAllowedSummary {
pub id: MailGatewayAllowedId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailGatewayAllowedRef {
pub id: MailGatewayAllowedId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct PhoneBlacklistId(pub Uuid);
impl PhoneBlacklistId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for PhoneBlacklistId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<PhoneBlacklistId> for Uuid {
fn from(id: PhoneBlacklistId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PhoneBlacklistDto {
pub id: PhoneBlacklistId,
pub number: String,
pub active: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PhoneBlacklistSummary {
pub id: PhoneBlacklistId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PhoneBlacklistRef {
pub id: PhoneBlacklistId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailMessageScheduleId(pub Uuid);
impl MailMessageScheduleId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailMessageScheduleId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailMessageScheduleId> for Uuid {
fn from(id: MailMessageScheduleId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageScheduleDto {
pub id: MailMessageScheduleId,
pub mail_message_id: Uuid,
pub notification_parameters: Option<String>,
pub scheduled_datetime: DateTime<Utc>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageScheduleSummary {
pub id: MailMessageScheduleId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailMessageScheduleRef {
pub id: MailMessageScheduleId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct MailScheduledMessageId(pub Uuid);
impl MailScheduledMessageId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for MailScheduledMessageId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<MailScheduledMessageId> for Uuid {
fn from(id: MailScheduledMessageId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailScheduledMessageDto {
pub id: MailScheduledMessageId,
pub subject: Option<String>,
pub body: String,
pub scheduled_date: DateTime<Utc>,
pub composition_comment_option: Option<String>,
pub model: String,
pub res_id: Uuid,
pub author_party_id: Uuid,
pub recipient_party_ids: Option<serde_json::Value>,
pub is_note: bool,
pub notification_parameters: Option<String>,
pub send_context: Option<serde_json::Value>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailScheduledMessageSummary {
pub id: MailScheduledMessageId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MailScheduledMessageRef {
pub id: MailScheduledMessageId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct SmsId(pub Uuid);
impl SmsId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for SmsId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<SmsId> for Uuid {
fn from(id: SmsId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SmsDto {
pub id: SmsId,
pub uuid: String,
pub number: String,
pub body: String,
pub state: SmsState,
pub failure_type: Option<SmsFailureType>,
pub error_message: Option<String>,
pub mail_message_id: Option<Uuid>,
pub iap_status_code: Option<i32>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SmsSummary {
pub id: SmsId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SmsRef {
pub id: SmsId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct SmsTemplateId(pub Uuid);
impl SmsTemplateId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for SmsTemplateId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<SmsTemplateId> for Uuid {
fn from(id: SmsTemplateId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SmsTemplateDto {
pub id: SmsTemplateId,
pub name: String,
pub body: String,
pub model_id: Option<Uuid>,
pub lang: Option<String>,
pub condition: Option<String>,
pub active: bool,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SmsTemplateSummary {
pub id: SmsTemplateId,
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SmsTemplateRef {
pub id: SmsTemplateId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub struct SmsTrackerId(pub Uuid);
impl SmsTrackerId {
pub fn new(id: Uuid) -> Self {
Self(id)
}
pub fn into_inner(self) -> Uuid {
self.0
}
}
impl From<Uuid> for SmsTrackerId {
fn from(id: Uuid) -> Self {
Self(id)
}
}
impl From<SmsTrackerId> for Uuid {
fn from(id: SmsTrackerId) -> Self {
id.0
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SmsTrackerDto {
pub id: SmsTrackerId,
pub sms_uuid: String,
pub message_id: Option<Uuid>,
pub notification_id: Option<Uuid>,
pub state: MailNotificationStatus,
pub failure_type: Option<NotificationFailureType>,
pub failure_reason: Option<String>,
pub recipient: Option<String>,
pub metadata: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SmsTrackerSummary {
pub id: SmsTrackerId,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SmsTrackerRef {
pub id: SmsTrackerId,
}