/** * PagarmeApiSDKLib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { array, dict, lazy, nullable, number, object, optional, Schema, string, } from '../schema'; import { GetBillingAddressResponse, getBillingAddressResponseSchema, } from './getBillingAddressResponse'; import { GetChargeResponse, getChargeResponseSchema, } from './getChargeResponse'; import { GetCustomerResponse, getCustomerResponseSchema, } from './getCustomerResponse'; import { GetInvoiceItemResponse, getInvoiceItemResponseSchema, } from './getInvoiceItemResponse'; import { GetPeriodResponse, getPeriodResponseSchema, } from './getPeriodResponse'; import { GetShippingResponse, getShippingResponseSchema, } from './getShippingResponse'; import { GetSubscriptionResponse, getSubscriptionResponseSchema, } from './getSubscriptionResponse'; /** Response object for getting an invoice */ export interface GetInvoiceResponse { id?: string | null; code?: string | null; url?: string | null; amount?: number | null; status?: string | null; paymentMethod?: string | null; createdAt?: string | null; items?: GetInvoiceItemResponse[] | null; customer?: GetCustomerResponse | null; charge?: GetChargeResponse | null; installments?: number | null; billingAddress?: GetBillingAddressResponse | null; subscription?: GetSubscriptionResponse | null; cycle?: GetPeriodResponse | null; shipping?: GetShippingResponse | null; metadata?: Record | null; dueAt?: string | null; canceledAt?: string | null; billingAt?: string | null; seenAt?: string | null; /** Total discounted value */ totalDiscount?: number | null; /** Total discounted value */ totalIncrement?: number | null; /** Subscription Id */ subscriptionId?: string | null; } export const getInvoiceResponseSchema: Schema = object({ id: ['id', optional(nullable(string()))], code: ['code', optional(nullable(string()))], url: ['url', optional(nullable(string()))], amount: ['amount', optional(nullable(number()))], status: ['status', optional(nullable(string()))], paymentMethod: ['payment_method', optional(nullable(string()))], createdAt: ['created_at', optional(nullable(string()))], items: [ 'items', optional(nullable(array(lazy(() => getInvoiceItemResponseSchema)))), ], customer: [ 'customer', optional(nullable(lazy(() => getCustomerResponseSchema))), ], charge: ['charge', optional(nullable(lazy(() => getChargeResponseSchema)))], installments: ['installments', optional(nullable(number()))], billingAddress: [ 'billing_address', optional(nullable(lazy(() => getBillingAddressResponseSchema))), ], subscription: [ 'subscription', optional(nullable(lazy(() => getSubscriptionResponseSchema))), ], cycle: ['cycle', optional(nullable(lazy(() => getPeriodResponseSchema)))], shipping: [ 'shipping', optional(nullable(lazy(() => getShippingResponseSchema))), ], metadata: ['metadata', optional(nullable(dict(string())))], dueAt: ['due_at', optional(nullable(string()))], canceledAt: ['canceled_at', optional(nullable(string()))], billingAt: ['billing_at', optional(nullable(string()))], seenAt: ['seen_at', optional(nullable(string()))], totalDiscount: ['total_discount', optional(nullable(number()))], totalIncrement: ['total_increment', optional(nullable(number()))], subscriptionId: ['subscription_id', optional(nullable(string()))], });