import { familyApi } from '../api/client'; import type { Family, CreateFamilyRequest, CreateMyFamilyRequest, CreateMyFamilyResponse, VerifyFamilyPasswordRequest, FamilyMember } from '../types'; import { handleApiError } from '../utils/errorHandler'; export const familyService = { async getAll(): Promise { try { const res = await familyApi.getAll(); return res.data; } catch (error) { handleApiError(error); } }, async getById(id: number): Promise { try { const res = await familyApi.getById(id); return res.data; } catch (error) { handleApiError(error); } }, async create(data: CreateFamilyRequest): Promise { try { const res = await familyApi.create(data); return res.data; } catch (error) { handleApiError(error); } }, async createMyFamily(data: CreateMyFamilyRequest): Promise { try { const res = await familyApi.createMyFamily(data); return res.data; } catch (error) { handleApiError(error); } }, async update(id: number, data: { name: string }): Promise { try { const res = await familyApi.update(id, data); return res.data; } catch (error) { handleApiError(error); } }, async delete(id: number): Promise { try { await familyApi.delete(id); } catch (error) { handleApiError(error); } }, async verifyPassword(id: number, data: VerifyFamilyPasswordRequest): Promise { try { const res = await familyApi.verifyPassword(id, data); return res.data.valid; } catch (error) { handleApiError(error); } }, async getMembers(familyId: number): Promise { try { const res = await familyApi.getMembers(familyId); return res.data; } catch (error) { handleApiError(error); } }, formatMemberName(member: FamilyMember): string { return member.username || member.email || 'Unknown User'; }, countAdmins(members: FamilyMember[]): number { return members.filter((m) => m.is_admin).length; }, };