import { COABalanceGroupedByPeriodPayloadV2, COABalanceGroupedPayloadV2 } from '../../commonPayloadTypes/v2/coaBalancePayload'; import { CurrencyPayload } from '../../commonPayloadTypes/v2/viewAndReportPayloadv2'; import { ReportPayload } from '../../commonPayloadTypes/viewAndReportPayload'; import { AccountBasePayload } from '../../entity/account/accountPayload'; import { ClassBasePayload } from '../../entity/class/classPayload'; import { VendorPayload } from '../../entity/vendor/vendorPayload'; import { ZeniReportResponse } from '../../responsePayload'; interface ReportStatusPayload { code: number; description: string; last_refresh_attempt_time: string | null; last_refresh_success_time: string | null; message: string; is_report_generated?: boolean; } interface PageMetadataPayload { current_page: number; next_page_token: string; page_limit: number; total_count: number; total_pages: number; } export interface OpexByVendorBalancesPayload extends COABalanceGroupedPayloadV2 { account_id: string | undefined; accounting_class_id: string | undefined; vendor_id: string; } export interface OpexByVendorReportPayload extends ReportPayload { status: ReportStatusPayload; accounting_class?: ClassBasePayload[]; accounts?: AccountBasePayload[]; currency?: CurrencyPayload; operating_expenses?: OpexByVendorBalancesPayload[]; page_metadata?: PageMetadataPayload; vendors?: VendorPayload[]; } export type OpexByVendorReportResponse = ZeniReportResponse; interface VendorCOABalanceGroupedPayloadByVendorId { [vendorId: string]: COABalanceGroupedByPeriodPayloadV2; } export interface VendorCOABalanceGroupedPayloadV2 extends COABalanceGroupedPayloadV2 { vendors: VendorCOABalanceGroupedPayloadByVendorId; } export interface OpexByVendorReportSummaryPayload extends ReportPayload { status: ReportStatusPayload; currency?: CurrencyPayload; operating_expenses?: VendorCOABalanceGroupedPayloadV2; vendors?: VendorPayload[]; } export type OpexByVendorReportSummaryResponse = ZeniReportResponse; export {};