import { z } from 'zod'; const ItemSchema = z.object({ Label: z.string(), Price: z.number(), Quantity: z.number(), Amount: z.number(), Department: z.nullable(z.unknown()), Vat: z.number(), EAN13: z.nullable(z.string()), AgentSign: z.nullable(z.unknown()), Method: z.number(), Object: z.number(), MeasurementUnit: z.nullable(z.string()), UnitCode: z.nullable(z.string()), Code: z.nullable(z.string()), CalcVat: z.number(), VatDescription: z.string(), MethodName: z.nullable(z.string()), ObjectName: z.nullable(z.string()), AgentDescription: z.string(), AgentData: z.nullable(z.unknown()), PurveyorData: z.nullable(z.unknown()), Excise: z.nullable(z.unknown()), CountryOriginCode: z.nullable(z.string()), CustomsDeclarationNumber: z.nullable(z.string()), ProductCodeData: z.nullable(z.unknown()), AdditionalPositionInfo: z.nullable(z.string()), SaleObjectData: z.nullable(z.unknown()), PriceChangeDescription: z.nullable(z.string()), IndustryRequisiteCollection: z.array(z.unknown()), MarkPartQuantity: z.nullable(z.unknown()), ExpectedMarkItemStatus: z.nullable(z.unknown()), MarkCheckFlags: z.nullable(z.unknown()), RawMarkCode: z.nullable(z.string()), GroupSeparator: z.nullable(z.string()), MarkResultSign: z.nullable(z.unknown()), Spic: z.nullable(z.string()), PackageCode: z.nullable(z.string()), Barcode: z.nullable(z.string()), Discount: z.nullable(z.number()), OtherDiscount: z.nullable(z.number()), MarkCodes: z.array(z.unknown()), }); const AmountsSchema = z.object({ Electronic: z.number(), Cash: z.number(), AdvancePayment: z.number(), Credit: z.number(), Provision: z.number(), }); const VatTotalSchema = z.object({ Vat: z.number(), Label: z.string(), Amount: z.number(), }); export const CloudPaymentsReceiptSchema = z.object({ TinyUrl: z.string(), Email: z.string().email(), Phone: z.nullable(z.string()), CalculationPlace: z.string().url(), SettlePlace: z.string(), Items: z.array(ItemSchema), TaxationSystem: z.number(), Amounts: AmountsSchema, IsBso: z.boolean(), Currency: z.number(), CustomerInfo: z.nullable(z.unknown()), CustomerInn: z.nullable(z.string()), CustomerBirthday: z.nullable(z.string()), CustomerStateCode: z.nullable(z.string()), CustomerDocType: z.nullable(z.string()), CustomerDoc: z.nullable(z.string()), CustomerPlace: z.nullable(z.string()), HasServices: z.boolean(), AgentSign: z.nullable(z.unknown()), EncryptedData: z.nullable(z.unknown()), Signature: z.nullable(z.string()), HasAgentData: z.boolean(), CashierName: z.nullable(z.string()), CashierInn: z.nullable(z.string()), PurveyorData: z.nullable(z.unknown()), AgentData: z.nullable(z.unknown()), DocumentNumber: z.string(), SessionNumber: z.string(), SessionCheckNumber: z.string(), FiscalSign: z.string(), FiscalDate: z.date(), DeviceNumber: z.string(), RegNumber: z.string(), FiscalNumber: z.string(), Ofd: z.number(), Url: z.string(), TestMode: z.boolean(), ClientAdress: z.string().email(), FfdVersion: z.number(), KkmModelName: z.string(), IsSmsDisabled: z.boolean(), ReceiptQrCodeUrl: z.string(), ReceiptOfdUrl: z.string(), ReceiptLocalUrl: z.string(), OfdName: z.string(), OfdUrl: z.string(), OfdInn: z.string(), VatTotals: z.array(VatTotalSchema), TaxationSystemDescription: z.string(), AdditionalReceiptInfos: z.array(z.unknown()), UserRequisiteData: z.nullable(z.unknown()), AdditionalReceiptRequisite: z.nullable(z.unknown()), IndustryRequisiteCollection: z.array(z.unknown()), OperationReceiptRequisite: z.nullable(z.unknown()), TinyUrlRefundTarget: z.nullable(z.string()), Location: z.nullable(z.unknown()), TaxiData: z.nullable(z.unknown()), OtherContactData: z.nullable(z.unknown()), });