import { z } from 'zod'; import { UserToSubscriptionSchema } from '../../models'; export namespace UpgradeSubscriptionCommand { export const RequestSchema = z.object({ upgradeSubscriptionId: z.string().uuid(), promocode: z.string().optional(), }); export const RequestParamSchema = UserToSubscriptionSchema.pick({ uuid: true, }); export type Request = z.infer; const IReceiptOrderSchema = z.object({ items: z.array( z.object({ label: z.string(), price: z.number(), quantity: z.number(), amount: z.number(), vat: z.number(), }), ), email: z.string(), isBso: z.boolean(), amounts: z.object({ electronic: z.number(), }), }); export const ResponseSchema = z.object({ publicId: z.string(), amount: z.number(), currency: z.string(), accountId: z.string(), description: z.string(), invoiceId: z.string(), email: z.string(), skin: z.string(), autoClose: z.number(), data: z.object({ CloudPayments: z.object({ CustomerReceipt: IReceiptOrderSchema, }), }), }); export type Response = z.infer; }