Skip to content

Commit f22d5de

Browse files
committed
fix: add datetime validation to ISO date fields, remove hasActiveSubscription
- Add z.string().datetime() validation to currentPeriodStart, currentPeriodEnd in SubscriptionSchema and CustomerSubscriptionSchema - Remove hasActiveSubscription from CustomerSchema as it can be derived from subscriptions array client-side
1 parent 3d8ca7c commit f22d5de

2 files changed

Lines changed: 8 additions & 9 deletions

File tree

src/schemas/customer.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ export const CustomerSubscriptionSchema = z.object({
1313
id: z.string(),
1414
productId: z.string(),
1515
status: SubscriptionStatusSchema,
16-
currentPeriodStart: z.string(), // ISO date
17-
currentPeriodEnd: z.string(), // ISO date
16+
currentPeriodStart: z.string().datetime(),
17+
currentPeriodEnd: z.string().datetime(),
1818
cancelAtPeriodEnd: z.boolean().optional(),
1919
amount: z.number(),
2020
currency: CurrencySchema,
@@ -31,7 +31,6 @@ export const CustomerSchema = z.object({
3131
name: z.string().nullable().optional(),
3232
externalId: z.string().nullable().optional(),
3333
subscriptions: z.array(CustomerSubscriptionSchema),
34-
hasActiveSubscription: z.boolean(),
3534
});
3635

3736
/**

src/schemas/subscription.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ export const SubscriptionSchema = z.object({
1818
currency: CurrencySchema,
1919
recurringInterval: RecurringIntervalSchema,
2020
status: SubscriptionStatusSchema,
21-
currentPeriodStart: z.string(), // ISO date
22-
currentPeriodEnd: z.string(), // ISO date
21+
currentPeriodStart: z.string().datetime(),
22+
currentPeriodEnd: z.string().datetime(),
2323
cancelAtPeriodEnd: z.boolean().optional(),
24-
endsAt: z.string().optional(), // ISO date (if scheduled to end)
25-
endedAt: z.string().optional(), // ISO date (if ended)
26-
canceledAt: z.string().optional(), // ISO date (if canceled)
27-
startedAt: z.string(), // ISO date
24+
endsAt: z.string().datetime().optional(),
25+
endedAt: z.string().datetime().optional(),
26+
canceledAt: z.string().datetime().optional(),
27+
startedAt: z.string().datetime(),
2828
});
2929

3030
export const SubscriptionWebhookEventSchema = z.enum([

0 commit comments

Comments
 (0)