import { APIAdminClient } from '@core/typings/api/admin-client.typing'; import { SimpleStringMap } from '@yourcause/common'; import { CachedAttr, CACHE_TYPES } from '@yourcause/common/cache'; import { BaseYcState, RegisterYCState } from '@yourcause/common/state'; @RegisterYCState() export class AdminClientState extends BaseYcState { @CachedAttr(CACHE_TYPES.LOCALSTORAGE) readonly activeClientId: number; readonly activeClient: APIAdminClient.Client; readonly clients: APIAdminClient.Client[]; readonly clientsMap: SimpleStringMap; readonly clientPrograms: { [clientId: number]: APIAdminClient.GrantProgramSummaryResponse[]; } = {}; readonly clientProgramForms: { [id: number]: APIAdminClient.GrantProgramForm[]; } = {}; readonly clientBudgetsMap: Record = {}; }