diff --git a/packages/billing/gateway/src/components/current-lifetime-order-card.tsx b/packages/billing/gateway/src/components/current-lifetime-order-card.tsx index b322c0b24..7162aba63 100644 --- a/packages/billing/gateway/src/components/current-lifetime-order-card.tsx +++ b/packages/billing/gateway/src/components/current-lifetime-order-card.tsx @@ -1,7 +1,7 @@ import { BadgeCheck } from 'lucide-react'; import { BillingConfig, getProductPlanPairByVariantId } from '@kit/billing'; -import { Database } from '@kit/supabase/database'; +import { Tables } from '@kit/supabase/database'; import { Card, CardContent, @@ -14,8 +14,8 @@ import { Trans } from '@kit/ui/trans'; import { CurrentPlanBadge } from './current-plan-badge'; import { LineItemDetails } from './line-item-details'; -type Order = Database['public']['Tables']['orders']['Row']; -type LineItem = Database['public']['Tables']['order_items']['Row']; +type Order = Tables<'orders'> +type LineItem = Tables<'order_items'>; interface Props { order: Order & { diff --git a/packages/billing/gateway/src/components/current-plan-alert.tsx b/packages/billing/gateway/src/components/current-plan-alert.tsx index 0b4f15ad0..faa5d1dfe 100644 --- a/packages/billing/gateway/src/components/current-plan-alert.tsx +++ b/packages/billing/gateway/src/components/current-plan-alert.tsx @@ -1,10 +1,10 @@ -import { Database } from '@kit/supabase/database'; +import { Enums } from '@kit/supabase/database'; import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert'; import { Trans } from '@kit/ui/trans'; export function CurrentPlanAlert( props: React.PropsWithoutRef<{ - status: Database['public']['Enums']['subscription_status']; + status: Enums<'subscription_status'> }>, ) { let variant: 'success' | 'warning' | 'destructive'; diff --git a/packages/billing/gateway/src/components/current-plan-badge.tsx b/packages/billing/gateway/src/components/current-plan-badge.tsx index 4a947717e..d21e4e81b 100644 --- a/packages/billing/gateway/src/components/current-plan-badge.tsx +++ b/packages/billing/gateway/src/components/current-plan-badge.tsx @@ -1,10 +1,8 @@ -import { Database } from '@kit/supabase/database'; +import { Enums } from '@kit/supabase/database'; import { Badge } from '@kit/ui/badge'; import { Trans } from '@kit/ui/trans'; -type Status = - | Database['public']['Enums']['subscription_status'] - | Database['public']['Enums']['payment_status']; +type Status = Enums<'subscription_status'> | Enums<'payment_status'>; export function CurrentPlanBadge( props: React.PropsWithoutRef<{ diff --git a/packages/billing/gateway/src/components/current-subscription-card.tsx b/packages/billing/gateway/src/components/current-subscription-card.tsx index ff5d68436..079e06fbc 100644 --- a/packages/billing/gateway/src/components/current-subscription-card.tsx +++ b/packages/billing/gateway/src/components/current-subscription-card.tsx @@ -2,7 +2,7 @@ import { formatDate } from 'date-fns'; import { BadgeCheck } from 'lucide-react'; import { BillingConfig, getProductPlanPairByVariantId } from '@kit/billing'; -import { Database } from '@kit/supabase/database'; +import { Tables } from '@kit/supabase/database'; import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert'; import { Card, @@ -18,8 +18,8 @@ import { CurrentPlanAlert } from './current-plan-alert'; import { CurrentPlanBadge } from './current-plan-badge'; import { LineItemDetails } from './line-item-details'; -type Subscription = Database['public']['Tables']['subscriptions']['Row']; -type LineItem = Database['public']['Tables']['subscription_items']['Row']; +type Subscription = Tables<'subscriptions'>; +type LineItem = Tables<'subscription_items'>; interface Props { subscription: Subscription & { diff --git a/packages/billing/gateway/src/components/embedded-checkout.tsx b/packages/billing/gateway/src/components/embedded-checkout.tsx index 388b2c04c..9b2540872 100644 --- a/packages/billing/gateway/src/components/embedded-checkout.tsx +++ b/packages/billing/gateway/src/components/embedded-checkout.tsx @@ -1,9 +1,9 @@ import { Suspense, forwardRef, lazy, memo, useMemo } from 'react'; -import { Database } from '@kit/supabase/database'; +import { Enums } from '@kit/supabase/database'; import { LoadingOverlay } from '@kit/ui/loading-overlay'; -type BillingProvider = Database['public']['Enums']['billing_provider']; +type BillingProvider = Enums<'billing_provider'>; const Fallback = ; diff --git a/packages/billing/gateway/src/server/services/billing-event-handler/billing-event-handler-provider.ts b/packages/billing/gateway/src/server/services/billing-event-handler/billing-event-handler-provider.ts index 2605c6ce6..5e72c9973 100644 --- a/packages/billing/gateway/src/server/services/billing-event-handler/billing-event-handler-provider.ts +++ b/packages/billing/gateway/src/server/services/billing-event-handler/billing-event-handler-provider.ts @@ -3,7 +3,7 @@ import 'server-only'; import { SupabaseClient } from '@supabase/supabase-js'; import { BillingConfig } from '@kit/billing'; -import { Database } from '@kit/supabase/database'; +import { Database, Enums } from '@kit/supabase/database'; import { BillingEventHandlerFactoryService } from './billing-event-handler-factory.service'; import { createBillingEventHandlerService } from './billing-event-handler.service'; @@ -12,7 +12,7 @@ import { createBillingEventHandlerService } from './billing-event-handler.servic type ClientProvider = () => SupabaseClient; // the billing provider from the database -type BillingProvider = Database['public']['Enums']['billing_provider']; +type BillingProvider = Enums<'billing_provider'>; /** * @name getBillingEventHandlerService diff --git a/packages/billing/gateway/src/server/services/billing-webhooks/billing-webhooks.service.ts b/packages/billing/gateway/src/server/services/billing-webhooks/billing-webhooks.service.ts index 2c38625de..97f2413e2 100644 --- a/packages/billing/gateway/src/server/services/billing-webhooks/billing-webhooks.service.ts +++ b/packages/billing/gateway/src/server/services/billing-webhooks/billing-webhooks.service.ts @@ -1,10 +1,10 @@ import 'server-only'; -import { Database } from '@kit/supabase/database'; +import { Tables } from '@kit/supabase/database'; import { createBillingGatewayService } from '../billing-gateway/billing-gateway.service'; -type Subscription = Database['public']['Tables']['subscriptions']['Row']; +type Subscription = Tables<'subscriptions'> export function createBillingWebhooksService() { return new BillingWebhooksService(); diff --git a/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts b/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts index 5f18ba4f0..48100fff9 100644 --- a/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts +++ b/packages/billing/lemon-squeezy/src/services/lemon-squeezy-webhook-handler.service.ts @@ -6,7 +6,7 @@ import { import { BillingConfig, BillingWebhookHandlerService } from '@kit/billing'; import { getLogger } from '@kit/shared/logger'; -import { Database } from '@kit/supabase/database'; +import { Database, Enums } from '@kit/supabase/database'; import { getLemonSqueezyEnv } from '../schema/lemon-squeezy-server-env.schema'; import { OrderWebhook } from '../types/order-webhook'; @@ -24,6 +24,8 @@ type UpsertSubscriptionParams = type UpsertOrderParams = Database['public']['Functions']['upsert_order']['Args']; +type BillingProvider = Enums<'billing_provider'>; + interface LineItem { id: string; quantity: number; @@ -42,8 +44,7 @@ type OrderStatus = 'pending' | 'failed' | 'paid' | 'refunded'; export class LemonSqueezyWebhookHandlerService implements BillingWebhookHandlerService { - private readonly provider: Database['public']['Enums']['billing_provider'] = - 'lemon-squeezy'; + private readonly provider: BillingProvider = 'lemon-squeezy'; private readonly namespace = 'billing.lemon-squeezy'; diff --git a/packages/billing/stripe/src/services/stripe-webhook-handler.service.ts b/packages/billing/stripe/src/services/stripe-webhook-handler.service.ts index 86df301f4..8f5586ed1 100644 --- a/packages/billing/stripe/src/services/stripe-webhook-handler.service.ts +++ b/packages/billing/stripe/src/services/stripe-webhook-handler.service.ts @@ -2,7 +2,7 @@ import Stripe from 'stripe'; import { BillingConfig, BillingWebhookHandlerService } from '@kit/billing'; import { getLogger } from '@kit/shared/logger'; -import { Database } from '@kit/supabase/database'; +import { Database, Enums } from '@kit/supabase/database'; import { StripeServerEnvSchema } from '../schema/stripe-server-env.schema'; import { createStripeClient } from './stripe-sdk'; @@ -29,6 +29,8 @@ interface LineItem { type UpsertOrderParams = Database['public']['Functions']['upsert_order']['Args']; +type BillingProvider = Enums<'billing_provider'>; + export class StripeWebhookHandlerService implements BillingWebhookHandlerService { @@ -36,7 +38,7 @@ export class StripeWebhookHandlerService constructor(private readonly config: BillingConfig) {} - private readonly provider: Database['public']['Enums']['billing_provider'] = + private readonly provider: BillingProvider = 'stripe'; private readonly namespace = 'billing.stripe'; diff --git a/packages/features/admin/src/components/admin-account-page.tsx b/packages/features/admin/src/components/admin-account-page.tsx index 053fe16c1..6e7481a74 100644 --- a/packages/features/admin/src/components/admin-account-page.tsx +++ b/packages/features/admin/src/components/admin-account-page.tsx @@ -6,7 +6,7 @@ import { VenetianMask, } from 'lucide-react'; -import { Database } from '@kit/supabase/database'; +import { Tables } from '@kit/supabase/database'; import { getSupabaseServerAdminClient } from '@kit/supabase/server-admin-client'; import { Alert, AlertDescription, AlertTitle } from '@kit/ui/alert'; import { AppBreadcrumbs } from '@kit/ui/app-breadcrumbs'; @@ -32,9 +32,8 @@ import { AdminMembersTable } from './admin-members-table'; import { AdminMembershipsTable } from './admin-memberships-table'; import { AdminReactivateUserDialog } from './admin-reactivate-user-dialog'; -type Db = Database['public']['Tables']; -type Account = Db['accounts']['Row']; -type Membership = Db['accounts_memberships']['Row']; +type Account = Tables<'accounts'>; +type Membership = Tables<'accounts_memberships'>; export function AdminAccountPage(props: { account: Account & { memberships: Membership[] }; diff --git a/packages/features/admin/src/components/admin-memberships-table.tsx b/packages/features/admin/src/components/admin-memberships-table.tsx index cd621ab1b..a9ea2c350 100644 --- a/packages/features/admin/src/components/admin-memberships-table.tsx +++ b/packages/features/admin/src/components/admin-memberships-table.tsx @@ -4,16 +4,15 @@ import Link from 'next/link'; import { ColumnDef } from '@tanstack/react-table'; -import { Database } from '@kit/supabase/database'; +import { Tables } from '@kit/supabase/database'; import { DataTable } from '@kit/ui/enhanced-data-table'; -type Membership = - Database['public']['Tables']['accounts_memberships']['Row'] & { - account: { - id: string; - name: string; - }; +type Membership = Tables<'accounts_memberships'> & { + account: { + id: string; + name: string; }; +}; export function AdminMembershipsTable(props: { memberships: Membership[] }) { return ;