pub mod mail_activity_dto;
pub mod mail_activity_type_dto;
pub mod mail_activity_plan_dto;
pub mod mail_activity_plan_template_dto;
pub mod mail_alias_domain_dto;
pub mod mail_alias_dto;
pub mod mail_attachment_dto;
pub mod mail_message_attachment_dto;
pub mod mail_message_star_dto;
pub mod mail_message_dto;
pub mod mail_dto;
pub mod mail_notification_dto;
pub mod mail_message_subtype_dto;
pub mod mail_message_reaction_dto;
pub mod mail_followers_dto;
pub mod mail_presence_dto;
pub mod mail_blacklist_dto;
pub mod mail_tracking_value_dto;
pub mod discuss_channel_dto;
pub mod discuss_channel_member_dto;
pub mod mail_guest_dto;
pub mod mail_server_dto;
pub mod fetchmail_server_dto;
pub mod mail_gateway_allowed_dto;
pub mod phone_blacklist_dto;
pub mod mail_message_schedule_dto;
pub mod mail_scheduled_message_dto;
pub mod sms_dto;
pub mod sms_template_dto;
pub mod sms_tracker_dto;
pub use mail_activity_dto::{
CreateMailActivityDto,
UpdateMailActivityDto,
PatchMailActivityDto,
MailActivityResponseDto,
MailActivityListResponseDto,
MailActivitySummaryDto,
};
pub use mail_activity_type_dto::{
CreateMailActivityTypeDto,
UpdateMailActivityTypeDto,
PatchMailActivityTypeDto,
MailActivityTypeResponseDto,
MailActivityTypeListResponseDto,
MailActivityTypeSummaryDto,
};
pub use mail_activity_plan_dto::{
CreateMailActivityPlanDto,
UpdateMailActivityPlanDto,
PatchMailActivityPlanDto,
MailActivityPlanResponseDto,
MailActivityPlanListResponseDto,
MailActivityPlanSummaryDto,
};
pub use mail_activity_plan_template_dto::{
CreateMailActivityPlanTemplateDto,
UpdateMailActivityPlanTemplateDto,
PatchMailActivityPlanTemplateDto,
MailActivityPlanTemplateResponseDto,
MailActivityPlanTemplateListResponseDto,
MailActivityPlanTemplateSummaryDto,
};
pub use mail_alias_domain_dto::{
CreateMailAliasDomainDto,
UpdateMailAliasDomainDto,
PatchMailAliasDomainDto,
MailAliasDomainResponseDto,
MailAliasDomainListResponseDto,
MailAliasDomainSummaryDto,
};
pub use mail_alias_dto::{
CreateMailAliasDto,
UpdateMailAliasDto,
PatchMailAliasDto,
MailAliasResponseDto,
MailAliasListResponseDto,
MailAliasSummaryDto,
};
pub use mail_attachment_dto::{
CreateMailAttachmentDto,
UpdateMailAttachmentDto,
PatchMailAttachmentDto,
MailAttachmentResponseDto,
MailAttachmentListResponseDto,
MailAttachmentSummaryDto,
};
pub use mail_message_attachment_dto::{
CreateMailMessageAttachmentDto,
UpdateMailMessageAttachmentDto,
PatchMailMessageAttachmentDto,
MailMessageAttachmentResponseDto,
MailMessageAttachmentListResponseDto,
MailMessageAttachmentSummaryDto,
};
pub use mail_message_star_dto::{
CreateMailMessageStarDto,
UpdateMailMessageStarDto,
PatchMailMessageStarDto,
MailMessageStarResponseDto,
MailMessageStarListResponseDto,
MailMessageStarSummaryDto,
};
pub use mail_message_dto::{
CreateMailMessageDto,
UpdateMailMessageDto,
PatchMailMessageDto,
MailMessageResponseDto,
MailMessageListResponseDto,
MailMessageSummaryDto,
};
pub use mail_dto::{
CreateMailDto,
UpdateMailDto,
PatchMailDto,
MailResponseDto,
MailListResponseDto,
MailSummaryDto,
};
pub use mail_notification_dto::{
CreateMailNotificationDto,
UpdateMailNotificationDto,
PatchMailNotificationDto,
MailNotificationResponseDto,
MailNotificationListResponseDto,
MailNotificationSummaryDto,
};
pub use mail_message_subtype_dto::{
CreateMailMessageSubtypeDto,
UpdateMailMessageSubtypeDto,
PatchMailMessageSubtypeDto,
MailMessageSubtypeResponseDto,
MailMessageSubtypeListResponseDto,
MailMessageSubtypeSummaryDto,
};
pub use mail_message_reaction_dto::{
CreateMailMessageReactionDto,
UpdateMailMessageReactionDto,
PatchMailMessageReactionDto,
MailMessageReactionResponseDto,
MailMessageReactionListResponseDto,
MailMessageReactionSummaryDto,
};
pub use mail_followers_dto::{
CreateMailFollowersDto,
UpdateMailFollowersDto,
PatchMailFollowersDto,
MailFollowersResponseDto,
MailFollowersListResponseDto,
MailFollowersSummaryDto,
};
pub use mail_presence_dto::{
CreateMailPresenceDto,
UpdateMailPresenceDto,
PatchMailPresenceDto,
MailPresenceResponseDto,
MailPresenceListResponseDto,
MailPresenceSummaryDto,
};
pub use mail_blacklist_dto::{
CreateMailBlacklistDto,
UpdateMailBlacklistDto,
PatchMailBlacklistDto,
MailBlacklistResponseDto,
MailBlacklistListResponseDto,
MailBlacklistSummaryDto,
};
pub use mail_tracking_value_dto::{
CreateMailTrackingValueDto,
UpdateMailTrackingValueDto,
PatchMailTrackingValueDto,
MailTrackingValueResponseDto,
MailTrackingValueListResponseDto,
MailTrackingValueSummaryDto,
};
pub use discuss_channel_dto::{
CreateDiscussChannelDto,
UpdateDiscussChannelDto,
PatchDiscussChannelDto,
DiscussChannelResponseDto,
DiscussChannelListResponseDto,
DiscussChannelSummaryDto,
};
pub use discuss_channel_member_dto::{
CreateDiscussChannelMemberDto,
UpdateDiscussChannelMemberDto,
PatchDiscussChannelMemberDto,
DiscussChannelMemberResponseDto,
DiscussChannelMemberListResponseDto,
DiscussChannelMemberSummaryDto,
};
pub use mail_guest_dto::{
CreateMailGuestDto,
UpdateMailGuestDto,
PatchMailGuestDto,
MailGuestResponseDto,
MailGuestListResponseDto,
MailGuestSummaryDto,
};
pub use mail_server_dto::{
CreateMailServerDto,
UpdateMailServerDto,
PatchMailServerDto,
MailServerResponseDto,
MailServerListResponseDto,
MailServerSummaryDto,
};
pub use fetchmail_server_dto::{
CreateFetchmailServerDto,
UpdateFetchmailServerDto,
PatchFetchmailServerDto,
FetchmailServerResponseDto,
FetchmailServerListResponseDto,
FetchmailServerSummaryDto,
};
pub use mail_gateway_allowed_dto::{
CreateMailGatewayAllowedDto,
UpdateMailGatewayAllowedDto,
PatchMailGatewayAllowedDto,
MailGatewayAllowedResponseDto,
MailGatewayAllowedListResponseDto,
MailGatewayAllowedSummaryDto,
};
pub use phone_blacklist_dto::{
CreatePhoneBlacklistDto,
UpdatePhoneBlacklistDto,
PatchPhoneBlacklistDto,
PhoneBlacklistResponseDto,
PhoneBlacklistListResponseDto,
PhoneBlacklistSummaryDto,
};
pub use mail_message_schedule_dto::{
CreateMailMessageScheduleDto,
UpdateMailMessageScheduleDto,
PatchMailMessageScheduleDto,
MailMessageScheduleResponseDto,
MailMessageScheduleListResponseDto,
MailMessageScheduleSummaryDto,
};
pub use mail_scheduled_message_dto::{
CreateMailScheduledMessageDto,
UpdateMailScheduledMessageDto,
PatchMailScheduledMessageDto,
MailScheduledMessageResponseDto,
MailScheduledMessageListResponseDto,
MailScheduledMessageSummaryDto,
};
pub use sms_dto::{
CreateSmsDto,
UpdateSmsDto,
PatchSmsDto,
SmsResponseDto,
SmsListResponseDto,
SmsSummaryDto,
};
pub use sms_template_dto::{
CreateSmsTemplateDto,
UpdateSmsTemplateDto,
PatchSmsTemplateDto,
SmsTemplateResponseDto,
SmsTemplateListResponseDto,
SmsTemplateSummaryDto,
};
pub use sms_tracker_dto::{
CreateSmsTrackerDto,
UpdateSmsTrackerDto,
PatchSmsTrackerDto,
SmsTrackerResponseDto,
SmsTrackerListResponseDto,
SmsTrackerSummaryDto,
};
use serde::Serialize;
#[cfg(feature = "openapi")]
#[cfg(feature = "openapi")]
use utoipa::ToSchema;
#[derive(Debug, Clone, Default, serde::Deserialize)]
#[cfg_attr(feature = "openapi", derive(ToSchema))]
pub struct PaginationParams {
#[serde(default = "default_page")]
pub page: u32,
#[serde(default = "default_per_page")]
pub per_page: u32,
pub sort_by: Option<String>,
pub sort_order: Option<String>,
}
fn default_page() -> u32 { 1 }
fn default_per_page() -> u32 { 20 }
#[derive(Debug, Clone, Serialize)]
#[cfg_attr(feature = "openapi", derive(ToSchema))]
#[serde(rename_all = "camelCase")]
pub struct ApiResponse<T> {
pub success: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<T>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error: Option<ApiError>,
}
#[derive(Debug, Clone, Serialize)]
#[cfg_attr(feature = "openapi", derive(ToSchema))]
pub struct ApiError {
pub code: String,
pub message: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub details: Option<serde_json::Value>,
}
impl<T> ApiResponse<T> {
pub fn ok(data: T) -> Self {
Self { success: true, data: Some(data), error: None }
}
pub fn err(code: impl Into<String>, message: impl Into<String>) -> Self {
Self {
success: false,
data: None,
error: Some(ApiError {
code: code.into(),
message: message.into(),
details: None,
}),
}
}
}