import { AccountCOABalanceGroupedPayloadByAccountId } from '../../commonPayloadTypes/subAccountView/reportBySubAccountPayload'; import { COABalanceGroupedPayloadV2 } from '../../commonPayloadTypes/v2/coaBalancePayload'; import { ReportPayloadV2 } from '../../commonPayloadTypes/v2/viewAndReportPayloadv2'; import { AccountMetadataPayload } from '../../entity/account/accountPayload'; import { ProjectMetadataPayload } from '../../entity/project/projectPayload'; import { ZeniReportResponse } from '../../responsePayload'; export interface ReportByProjectMetadataPayloadV2 extends ReportPayloadV2 { accounts: AccountMetadataPayload[]; projects: ProjectMetadataPayload[]; } export interface ProjectCOABalanceGroupedPayloadV2 extends COABalanceGroupedPayloadV2 { accounts: AccountCOABalanceGroupedPayloadByAccountId; } interface ProjectCOABalanceGroupedPayloadByProjectIdV2 { [project_Id: string]: ProjectCOABalanceGroupedPayloadV2; } export interface SectionByProjectCOABalanceGroupedPayloadV2 extends COABalanceGroupedPayloadV2 { projects: ProjectCOABalanceGroupedPayloadByProjectIdV2; } interface CalculatedProjectCOABalanceGroupedPayloadByProjectIdV2 { [project_Id: string]: COABalanceGroupedPayloadV2; } /** * A section whose per-project entries carry a time series and nothing else: the * backend fills the account-wise map only for the account sections, so the * calculated sections (net income, the operating total, change in cash) are * grouped by project with no accounts underneath. */ export interface CalculatedSectionByProjectCOABalanceGroupedPayloadV2 extends COABalanceGroupedPayloadV2 { projects: CalculatedProjectCOABalanceGroupedPayloadByProjectIdV2; } export interface ProfitAndLossProjectViewPayload extends ReportByProjectMetadataPayloadV2 { cogs: SectionByProjectCOABalanceGroupedPayloadV2; earnings_before_interest_and_tax: COABalanceGroupedPayloadV2; expenses: SectionByProjectCOABalanceGroupedPayloadV2; gross_profit: COABalanceGroupedPayloadV2; income: SectionByProjectCOABalanceGroupedPayloadV2; net_income: COABalanceGroupedPayloadV2; net_operating_income: COABalanceGroupedPayloadV2; net_other_income: COABalanceGroupedPayloadV2; other_expenses: SectionByProjectCOABalanceGroupedPayloadV2; other_income: SectionByProjectCOABalanceGroupedPayloadV2; } export type ProfitAndLossReportProjectViewResponse = ZeniReportResponse; export {};