import { BehaviorSubject, Observable } from "rxjs"; import { IDashboardData } from "./types"; import { getDashboardData } from "./transactions"; class DashboardService { private dashboardData$ = new BehaviorSubject(null); /** * Get observable for dashboard data */ getDashboardData$(): Observable { return this.dashboardData$.asObservable(); } /** * Get current dashboard data */ getCurrentDashboardData(): IDashboardData | null { return this.dashboardData$.getValue(); } /** * Update dashboard data (called when fetching new data) */ updateDashboardData(data: IDashboardData): void { this.dashboardData$.next(data); } /** * Fetch and update dashboard data */ async fetchDashboardData(params: { dateStart?: string; dateEnd?: string; }): Promise { const data = await getDashboardData(params); this.updateDashboardData(data); return data; } } export const dashboardService = new DashboardService();