69 lines
2.4 KiB
TypeScript
69 lines
2.4 KiB
TypeScript
import { CreateFreeTrialSchema } from "@models/productModels/freeTrialModels/freeTrialModels";
|
|
import { z } from "zod/v4";
|
|
import { FeatureOptionsSchema } from "../../../models/cusProductModels/cusProductModels";
|
|
import { ProductItemSchema } from "../../../models/productV2Models/productItemModels/productItemModels";
|
|
import { CustomerDataSchema } from "../../common/customerData";
|
|
import { EntityDataSchema } from "../../models";
|
|
|
|
export const ExtUpdateSubscriptionV0ParamsSchema = z.object({
|
|
// Customer / Entity Info
|
|
customer_id: z.string(),
|
|
product_id: z.string().nullish(),
|
|
entity_id: z.string().nullish(),
|
|
|
|
customer_data: CustomerDataSchema.optional(),
|
|
entity_data: EntityDataSchema.optional(),
|
|
|
|
options: z.array(FeatureOptionsSchema).nullish(), // used for update quantity etc (in api - feature_quantities)
|
|
|
|
invoice: z.boolean().optional(),
|
|
enable_product_immediately: z.boolean().optional(),
|
|
finalize_invoice: z.boolean().optional(),
|
|
|
|
// Schedules (epoch milliseconds)
|
|
// plan_custom_start_date: z.number().optional(),
|
|
// billing_cycle_anchor: z.number().optional(),
|
|
|
|
// New
|
|
items: z.array(ProductItemSchema).optional(), // used for custom configuration of a plan (in api - plan_override)
|
|
free_trial: CreateFreeTrialSchema.nullable().optional(),
|
|
|
|
reset_billing_cycle_anchor: z.boolean().optional(),
|
|
new_billing_subscription: z.boolean().optional(),
|
|
prorate_billing: z.boolean().optional(),
|
|
});
|
|
|
|
export const UpdateSubscriptionV0ParamsSchema =
|
|
ExtUpdateSubscriptionV0ParamsSchema.extend({
|
|
customer_product_id: z.string().optional(),
|
|
});
|
|
|
|
export type ExtUpdateSubscriptionV0Params = z.infer<
|
|
typeof ExtUpdateSubscriptionV0ParamsSchema
|
|
>;
|
|
|
|
export type UpdateSubscriptionV0Params = z.infer<
|
|
typeof UpdateSubscriptionV0ParamsSchema
|
|
>;
|
|
|
|
// keep_existing_plan: true, //disable_plan_switch
|
|
// prorate_billing: true,
|
|
// invoice_only: true,
|
|
|
|
// carry_over_balance: true,
|
|
// reset_usage: true,
|
|
|
|
// billing_custom_start_date: "2025-11-04",
|
|
// billing_custom_end_date: "2025-12-04",
|
|
// billing_cycle_anchor: "2025-11-04",
|
|
// billing_due_date: "2025-11-04",
|
|
|
|
// new_billing_subscription: true, //fka combine_subscriptions, separate_billing_subscriptions
|
|
// require_payment_method: true, //fka force_checkout
|
|
// reset_balances: true
|
|
|
|
// plan_schedule: "immediate", // or "next_cycle", "custom_date"
|
|
// plan_custom_start_date: "2025-11-04",
|
|
// plan_custom_end_date: "2025-12-04",
|
|
// billing_schedule: "immediate", // or "next_cycle", "custom_date"
|