import { COABalanceGroupedByPeriod } from '../../commonStateTypes/coaBalance/coaBalance'; import { FetchStateAndError, ID } from '../../commonStateTypes/common'; import { ReportUIState } from '../../commonStateTypes/viewAndReport/reportUIState'; import { Report } from '../../commonStateTypes/viewAndReport/viewAndReport'; import { InsightSummary } from '../../entity/insights/insightSummary'; import { ZeniDate } from '../../zeniDayJS'; export interface RevenueUIState extends ReportUIState { nodeCollapseState: Record; scrollPosition?: { scrollTop: number; scrollLeft?: number; } | undefined; } export interface RevenueState extends Report { fetchState: { month: FetchStateAndError; quarter: FetchStateAndError; year: FetchStateAndError; }; insights: InsightSummary[]; cogs?: COABalanceGroupedByPeriod; forecastId?: ID; grossMargin?: COABalanceGroupedByPeriod; income?: COABalanceGroupedByPeriod; } export interface RevenueWithForecastState { revenue: RevenueState; revenueByForecastID: Record; uiState: RevenueUIState; lastFetchRequestTime?: ZeniDate; }