Files
cfw-autumn/shared/api/customers/cusPlans/previousVersions/apiCusProductV2.ts
2026-02-18 18:46:19 +00:00

35 lines
1023 B
TypeScript

import { ApiProductItemV0Schema } from "@api/products/items/previousVersions/apiProductItemV0";
import { z } from "zod/v4";
/**
* ApiCusProductV2Schema - Customer Product schema for API V1.1+ (post V0_2)
*
* Added in V0_2:
* - items: Array of product items (features, prices)
* - current_period_start: Billing period start timestamp
* - current_period_end: Billing period end timestamp
*/
export const ApiCusProductV2Schema = z.object({
id: z.string(),
name: z.string().nullable(),
group: z.string().nullable(),
status: z.enum(["active", "expired", "scheduled", "trialing", "past_due"]),
canceled_at: z.number().nullish(),
started_at: z.number(),
is_default: z.boolean(),
is_add_on: z.boolean(),
version: z.number().nullish(),
current_period_start: z.number().nullish(),
current_period_end: z.number().nullish(),
entity_id: z.string().nullish(),
items: z.array(ApiProductItemV0Schema).nullish(),
quantity: z.number().optional(),
});
type ApiCusProductV2 = z.infer<typeof ApiCusProductV2Schema>;