backbone-mailing 0.4.0

Email marketing — mass-mail engine: audiences, subscriptions, hand-set mailing lifecycle, seeded A/B testing, per-recipient traces, cycle-44 bridge targets (Odoo mass_mailing port)
//! Application services
//!
//! Generated by metaphor-schema. Do not edit manually.
//!
//! Each entity service is a type alias over `GenericCrudService`.

pub mod error;
pub use error::{ServiceError, ServiceResult};

pub mod mailing_ab_test_service;
pub mod mailing_audience_service;
pub mod mailing_contact_service;
pub mod mailing_subscription_service;
pub mod opt_out_reason_service;
pub mod mailing_service;
pub mod mailing_trace_service;
pub mod mailing_filter_service;

// <<< CUSTOM
pub mod ab_test_write_service;
pub mod event_registration_target_port;
pub mod mailing_stats_read_service;
pub mod mailing_write_service;
pub mod sale_invoiced_amount_port;
pub mod sms_delivery_pump_service;
pub mod sms_stop_service;
pub mod sms_suppression_service;
pub mod sms_targeting_service;
pub mod subscription_write_service;
pub mod trace_click_ports;
pub mod trace_route_service;
pub mod trace_write_service;
// END CUSTOM

pub use mailing_ab_test_service::MailingAbTestService;
pub use mailing_audience_service::MailingAudienceService;
pub use mailing_contact_service::MailingContactService;
pub use mailing_subscription_service::MailingSubscriptionService;
pub use opt_out_reason_service::OptOutReasonService;
pub use mailing_service::MailingService;
pub use mailing_trace_service::MailingTraceService;
pub use mailing_filter_service::MailingFilterService;
// <<< CUSTOM
pub use ab_test_write_service::{
    AbTestView, AbTestWriteError, AbTestWriteService, ChannelMetricRow, MixedChannelComparison,
};
pub use mailing_stats_read_service::{
    MailingStats, MailingStatsError, MailingStatsReadService, SHARED_SOURCE_CAVEAT,
    SourceGroupedStats,
};
pub use mailing_write_service::{
    AutoBlacklistConfig, DomainInvalid, MailingEventSink, MailingSendConfig, MailingUpsertCommand,
    MailingWriteError, MailingWriteService, PartyRecipientResolver, SweepOutcome,
    TargetRecipientResolver, TracingEventSink, default_domain_for,
};
pub use sale_invoiced_amount_port::{
    CannedSaleInvoicedAmount, RefusingSaleInvoicedAmount, SaleInvoicedAmountError,
    SaleInvoicedAmountPort, SaleInvoicedAmountSlot, SourceInvoicedAmount,
};
pub use event_registration_target_port::{
    EventRegistrationTargetAdapter, EventRegistrationTargetError,
    EventRegistrationTargetResolver, RefusingEventRegistrationTarget,
};
pub use subscription_write_service::{SubscriptionWriteError, SubscriptionWriteService};
pub use sms_delivery_pump_service::{SmsDeliveryPumpService, SmsPumpOutcome};
pub use trace_click_ports::{
    CannedTraceClick, CodeAttribution, RefusingTraceClick, ResolvedClick, TraceClickError,
    TraceClickPort, TraceClickSlot,
};
pub use trace_route_service::{AudienceOptOut, TraceRouteError, TraceRouteService};
pub use trace_write_service::{TraceTransition, TraceWriteError, TraceWriteService};
pub use sms_stop_service::{
    is_stop_reply_keyword, validate_stop_code, SmsStopError, SmsStopService, StopCodeError,
    StopReplyOutcome, STOP_CODE_MAX_LEN, STOP_CODE_MIN_LEN,
};
pub use sms_suppression_service::{
    ClaimedSmsContext, PhoneRecipient, SmsSuppressionError, SmsSuppressionService, Suppressed,
    SuppressionOutcome, SMS_BLACKLIST_FAILURE_TYPE,
};
pub use sms_targeting_service::{SmsTargetingReport, TargetPhoneResolver};
// END CUSTOM