import { client } from '../client' import { API } from '../endpoints' import type { User, UserSetting } from '../../types/domain/user' import type { Company } from '../../types/domain/company' import type { Currency } from '../../types/domain/currency' import type { Ability } from '../../types/domain/role' export interface MenuItem { title: string name: string route: string icon: string group: string ability?: string } export interface BootstrapResponse { current_user: User current_user_settings: Record current_user_abilities: Ability[] companies: Company[] current_company: Company | null current_company_settings: Record current_company_currency: Currency | null main_menu: MenuItem[] setting_menu: MenuItem[] config: Record global_settings: Record modules: string[] pending_invitations?: Array<{ token: string company_name: string invited_by: string email: string }> } export interface CurrentCompanyResponse { data: Company } export const bootstrapService = { async bootstrap(adminMode?: boolean): Promise { const url = adminMode ? `${API.BOOTSTRAP}?admin_mode=1` : API.BOOTSTRAP const { data } = await client.get(url) return data }, async getCurrentCompany(): Promise { const { data } = await client.get(API.CURRENT_COMPANY) return data }, }