| |
| |
| |
| |
| |
| |
| |
| import * as zod from "zod"; |
|
|
| |
| |
| |
| export const HealthCheckResponse = zod.object({ |
| status: zod.string(), |
| }); |
|
|
| |
| |
| |
| export const GetMeResponse = zod.object({ |
| userId: zod.string(), |
| email: zod.string().nullish(), |
| subscription: zod.object({ |
| status: zod.enum([ |
| "none", |
| "trialing", |
| "active", |
| "cancelled", |
| "suspended", |
| "expired", |
| ]), |
| trialEnd: zod.coerce.date().nullish(), |
| currentPeriodEnd: zod.coerce.date().nullish(), |
| paypalSubscriptionId: zod.string().nullish(), |
| hasAccess: zod.boolean(), |
| }), |
| }); |
|
|
| |
| |
| |
| export const CreateSubscriptionResponse = zod.object({ |
| subscriptionId: zod.string(), |
| approvalUrl: zod.string(), |
| }); |
|
|
| |
| |
| |
| export const ActivateSubscriptionBody = zod.object({ |
| subscriptionId: zod.string(), |
| }); |
|
|
| export const ActivateSubscriptionResponse = zod.object({ |
| status: zod.enum([ |
| "none", |
| "trialing", |
| "active", |
| "cancelled", |
| "suspended", |
| "expired", |
| ]), |
| trialEnd: zod.coerce.date().nullish(), |
| currentPeriodEnd: zod.coerce.date().nullish(), |
| paypalSubscriptionId: zod.string().nullish(), |
| hasAccess: zod.boolean(), |
| }); |
|
|
| |
| |
| |
| export const CancelSubscriptionResponse = zod.object({ |
| status: zod.enum([ |
| "none", |
| "trialing", |
| "active", |
| "cancelled", |
| "suspended", |
| "expired", |
| ]), |
| trialEnd: zod.coerce.date().nullish(), |
| currentPeriodEnd: zod.coerce.date().nullish(), |
| paypalSubscriptionId: zod.string().nullish(), |
| hasAccess: zod.boolean(), |
| }); |
|
|
| |
| |
| |
| export const PaypalWebhookBody = zod.record(zod.string(), zod.unknown()); |
|
|
| export const PaypalWebhookResponse = zod.object({ |
| status: zod.string(), |
| }); |
|
|
| |
| |
| |
| export const ListSavedListsResponseItem = zod.object({ |
| id: zod.number(), |
| name: zod.string(), |
| groupIds: zod.array(zod.string()), |
| createdAt: zod.coerce.date(), |
| }); |
| export const ListSavedListsResponse = zod.array(ListSavedListsResponseItem); |
|
|
| |
| |
| |
| export const createSavedListBodyNameMax = 80; |
|
|
| export const CreateSavedListBody = zod.object({ |
| name: zod.string().min(1).max(createSavedListBodyNameMax), |
| groupIds: zod.array(zod.string()).min(1), |
| }); |
|
|
| |
| |
| |
| export const DeleteSavedListParams = zod.object({ |
| id: zod.coerce.number(), |
| }); |
|
|