@criapix/saas-assinaturas-client
Version:
SDK JavaScript/TypeScript para o AssinaturasService - Sistema de gestão de assinaturas SaaS com processamento de pagamentos de faturas (cartão, PIX, débito), gerenciamento de métodos de pagamento, pagamentos recorrentes e análise de falhas de pagamento
105 lines (89 loc) • 1.83 kB
text/typescript
import { InvoiceStatus } from '../enums';
export interface InvoiceResponse {
id: string;
subscriptionId: string;
invoiceNumber: string;
issueDate: string;
dueDate: string;
amount: number;
status: InvoiceStatus;
paidAt?: string;
paymentMethod?: string;
notes?: string;
isOverdue: boolean;
daysOverdue: number;
createdAt: string;
updatedAt?: string;
}
export interface GenerateInvoiceRequest {
subscriptionId: string;
dueDate: string;
notes?: string;
}
export interface InvoiceFilterRequest {
subscriptionId?: string;
status?: InvoiceStatus;
dueDateFrom?: string;
dueDateTo?: string;
page?: number;
pageSize?: number;
}
export interface UpdateInvoiceStatusRequest {
status: InvoiceStatus;
paidAt?: string;
paymentMethod?: string;
notes?: string;
}
export interface GenerateBatchInvoicesRequest {
month?: number;
year?: number;
}
export interface InvoiceGenerationError {
subscriptionId: string;
errorMessage: string;
}
export interface BatchInvoiceResponse {
totalSubscriptionsProcessed: number;
invoicesGenerated: number;
invoicesAlreadyExisted: number;
errors: InvoiceGenerationError[];
month: number;
year: number;
}
/**
* Response containing aggregated invoice statistics
*/
export interface InvoiceStatisticsResponse {
/**
* Total number of invoices
*/
totalCount: number;
/**
* Total amount of all invoices
*/
totalAmount: number;
/**
* Number of paid invoices
*/
paidCount: number;
/**
* Total amount paid
*/
paidAmount: number;
/**
* Number of pending invoices
*/
pendingCount: number;
/**
* Total pending amount
*/
pendingAmount: number;
/**
* Number of overdue invoices
*/
overdueCount: number;
/**
* Total overdue amount
*/
overdueAmount: number;
}