Track subscription status

This commit is contained in:
Brandon Thomas committed 2022-09-19 00:26:16 -04:00
1 parent c6a1fc18d6
commit 66981c4d2c
4 files changed
+11

No files matched your search

@@ -41,6 +41,9 @@ CREATE TABLE user_subscriptions (
maybe_stripe_customer_id VARCHAR(255) DEFAULT NULL,
-- Subscription object status enum as string
maybe_stripe_subscription_status VARCHAR(32) DEFAULT NULL,
maybe_stripe_is_production BOOLEAN DEFAULT NULL,
-- ========== VECTOR CLOCK ==========
@@ -73,6 +76,7 @@ CREATE TABLE user_subscriptions (
UNIQUE KEY (maybe_stripe_subscription_id),
KEY index_subscription_category (subscription_category),
KEY index_subscription_product_key (subscription_product_key),
KEY index_maybe_stripe_subscription_status (maybe_stripe_subscription_status),
KEY fk_maybe_user_token (maybe_user_token)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
@@ -49,6 +49,7 @@ pub async fn customer_subscription_created_handler(
subscription_product_key: "todo",
maybe_stripe_product_id: Some(&summary.stripe_product_id),
maybe_stripe_customer_id: Some(&summary.stripe_customer_id),
maybe_stripe_subscription_status: Some(summary.stripe_subscription_status.as_str()),
maybe_stripe_is_production: Some(summary.stripe_is_production),
subscription_created_at: summary.subscription_period_start,
subscription_expires_at: summary.subscription_period_end,
@@ -25,6 +25,7 @@ pub async fn customer_subscription_updated_handler(
subscription_product_key: "todo",
maybe_stripe_product_id: Some(&summary.stripe_product_id),
maybe_stripe_customer_id: Some(&summary.stripe_customer_id),
maybe_stripe_subscription_status: Some(summary.stripe_subscription_status.as_str()),
maybe_stripe_is_production: Some(summary.stripe_is_production),
subscription_created_at: summary.subscription_period_start,
subscription_expires_at: summary.subscription_period_end,
@@ -22,6 +22,7 @@ pub struct UpsertSubscriptionByStripeId <'a> {
pub maybe_stripe_product_id: Option<&'a str>,
pub maybe_stripe_customer_id: Option<&'a str>,
pub maybe_stripe_subscription_status: Option<&'a str>,
pub maybe_stripe_is_production: Option<bool>,
pub subscription_created_at: NaiveDateTime,
@@ -54,6 +55,7 @@ SET
maybe_stripe_product_id = ?,
maybe_stripe_customer_id = ?,
maybe_stripe_subscription_status = ?,
maybe_stripe_is_production = ?,
subscription_created_at = ?,
@@ -63,6 +65,7 @@ SET
ON DUPLICATE KEY UPDATE
subscription_expires_at = ?,
maybe_stripe_subscription_status = ?,
maybe_user_token = COALESCE(NULLIF(?, ''), maybe_user_token),
version = version + 1
@@ -77,6 +80,7 @@ ON DUPLICATE KEY UPDATE
self.maybe_stripe_product_id,
self.maybe_stripe_customer_id,
self.maybe_stripe_subscription_status,
self.maybe_stripe_is_production,
self.subscription_created_at,
@@ -84,6 +88,7 @@ ON DUPLICATE KEY UPDATE
// Upsert
self.subscription_expires_at,
self.maybe_stripe_subscription_status,
self.maybe_user_token,
);