Skip to main content

syrup_rail_postgres/
lib.rs

1//! PostgreSQL schema contract and transaction orchestration for Syrup Rail.
2//!
3//! Production service construction must not expose or invoke a migrator; host
4//! applications materialize versioned install artifacts as immutable migrations.
5
6#![forbid(unsafe_code)]
7
8mod attempts;
9mod cancellation;
10mod deletion;
11mod discounts;
12mod enrollment_application;
13mod entitlement;
14mod gateway_accounts;
15mod grants;
16mod host_charge_application;
17mod host_charges;
18mod lifecycle_quarantine;
19mod lifecycle_reconciliation;
20mod operator_review;
21mod processor_charges;
22mod reconciliation;
23mod renewal;
24#[cfg(any(test, feature = "schema-contract-test-support"))]
25pub mod schema_contract;
26mod subscription_billing_service;
27#[cfg(test)]
28mod test_support;
29mod transactions;
30
31pub use attempts::{
32    PaymentAttemptStoreError, admit_subscription_enrollment_submission_in_transaction,
33    admit_subscription_payment_method_replacement_in_transaction,
34    admit_subscription_recovery_submission_in_transaction,
35    admit_subscription_renewal_submission_in_transaction,
36    find_payment_attempt_by_id_in_transaction, lock_payment_attempt_by_idempotency_in_transaction,
37    preflight_subscription_enrollment_in_transaction,
38    preflight_subscription_payment_method_replacement_in_transaction,
39    preflight_subscription_recovery_in_transaction, reserve_subscription_enrollment_in_transaction,
40    reserve_subscription_payment_method_replacement_in_transaction,
41    reserve_subscription_recovery_in_transaction, reserve_subscription_renewal_in_transaction,
42};
43pub use cancellation::{SubscriptionCancellationError, cancel_subscription_in_transaction};
44pub use deletion::{billing_deletion_blockers, scrub_subscriber_billing_data};
45pub use discounts::*;
46pub use enrollment_application::{
47    AdmittedSubscriptionEnrollment, AdmittedSubscriptionPaymentMethodReplacement,
48    AdmittedSubscriptionRecovery, AdmittedSubscriptionRenewal,
49    SubscriptionEnrollmentAdmissionOutcome, SubscriptionEnrollmentApplicationError,
50    SubscriptionEnrollmentProviderResult, SubscriptionPaymentMethodReplacementAdmissionOutcome,
51    SubscriptionPaymentMethodReplacementProviderResult, SubscriptionRecoveryAdmissionOutcome,
52    SubscriptionRecoveryProviderResult, SubscriptionRenewalAdmissionOutcome,
53    SubscriptionRenewalProviderResult, admit_subscription_enrollment_submission,
54    admit_subscription_payment_method_replacement, admit_subscription_recovery_submission,
55    admit_subscription_renewal_submission,
56    apply_reconciled_subscription_enrollment_gateway_outcome,
57    apply_reconciled_subscription_payment_method_replacement_gateway_outcome,
58    apply_reconciled_subscription_recovery_gateway_outcome,
59    apply_reconciled_subscription_renewal_gateway_outcome,
60    apply_subscription_enrollment_gateway_outcome,
61    apply_subscription_payment_method_replacement_gateway_outcome,
62    apply_subscription_recovery_gateway_outcome, apply_subscription_renewal_gateway_outcome,
63    submit_admitted_subscription_enrollment,
64    submit_admitted_subscription_payment_method_replacement, submit_admitted_subscription_recovery,
65    submit_admitted_subscription_renewal,
66};
67pub use entitlement::{
68    EntitlementGuardError, EntitlementQueryError, entitlement, require_entitlement_for_update,
69};
70pub use gateway_accounts::{activate_gateway_configuration, register_gateway_account};
71pub use grants::{
72    SubscriptionGrantMutationError, create_subscription_grant, revoke_subscription_grant,
73};
74pub use host_charge_application::{
75    AdmittedHostCharge, HostChargeAdmissionOutcome, HostChargeApplicationError,
76    HostChargeProviderResult, admit_host_charge_submission, apply_host_charge_gateway_outcome,
77    apply_reconciled_host_charge_gateway_outcome, submit_admitted_host_charge,
78};
79pub use host_charges::{
80    HostChargeLedgerAdmission, HostChargeLedgerAdmissionError, HostChargeLedgerAdmissionMode,
81    HostChargeLedgerAdmissionQuery, HostChargePreflightOutcome, HostChargeReservationDecision,
82    HostChargeReservationOutcome, HostChargeStoreError, HostChargeSubmissionAdmission,
83    HostChargeSubmissionDecision, HostChargeSubmissionOutcome, HostChargeTargetError,
84    HostChargeTargetReservation, HostChargeTargetStore,
85    admit_host_charge_submission_in_transaction, host_charge_ledger_admission,
86    preflight_host_charge_in_transaction, reserve_host_charge_in_transaction,
87};
88pub use lifecycle_quarantine::{
89    GatewayLifecycleQuarantineAlert, GatewayLifecycleQuarantineResolutionOutcome,
90    GatewayLifecycleQuarantineResolutionRecord, GatewayLifecycleQuarantineReviewRecord,
91    claim_gateway_lifecycle_quarantine_alert, gateway_lifecycle_quarantine_review_page,
92    resolve_gateway_lifecycle_quarantine,
93};
94pub use lifecycle_reconciliation::{
95    GatewayLifecycleApplyOutcome, GatewayLifecycleReconciliationError,
96    GatewayLifecycleReconciliationSummary, apply_gateway_lifecycle_evidence,
97    apply_staged_gateway_lifecycle_evidence, gateway_lifecycle_reconciliation_start,
98    reconcile_gateway_transaction_reports, record_gateway_lifecycle_quarantines,
99    save_gateway_lifecycle_reconciliation_cursor, stage_gateway_lifecycle_evidence,
100};
101pub use operator_review::{
102    ExternalReversalAttestationOutcome, ExternalReversalHostStore, ExternalReversalHostStoreError,
103    ExternalReversalHostTransitionOutcome, ManualAttemptFailureHostStore,
104    ManualAttemptFailureHostStoreError, ManualAttemptFailureHostTransitionOutcome,
105    OperatorReviewError, attempt_review_page, attest_external_reversal,
106    fail_review_required_attempt, processor_charge_review_page,
107};
108pub use processor_charges::{
109    CompensatingProcessorChargeOutcome, ProcessorChargeObservationOutcome,
110    ProcessorChargeStoreError, observe_processor_charge_in_transaction,
111    store_compensating_processor_charge, transition_processor_charge_in_transaction,
112};
113pub use reconciliation::{
114    ExactQueryObservation, ProcessorChargeClassificationSummary, apply_exact_query_observation,
115    claim_exact_reconciliation_attempts, classify_pending_processor_charges,
116    fail_stale_unsubmitted_payment_method_replacements,
117    fail_stale_unsubmitted_subscription_enrollments, reconciliation_gateway_accounts,
118};
119pub use renewal::{RenewalStoreError, due_renewals, renewal_attempt_state};
120pub use subscription_billing_service::{
121    GatewayMutationCooldownScope, SubscriptionBillingService, SubscriptionEnrollmentServiceError,
122};
123pub use transactions::{
124    BillingEventWriteError, BillingTransaction, BillingTransactionCoordinator,
125    BillingTransactionError, BillingTransactionSubjectState,
126};