import type { Player, PlayerInput, PlayerUpdateInput, } from "@/features/players/types"; import { transformPlayer } from "@/lib/pocketbase/util/transform-types"; import PocketBase from "pocketbase"; export function createPlayersService(pb: PocketBase) { return { async getPlayerByAuthId(authId: string): Promise { const result = await pb.collection("players").getList(1, 1, { filter: `auth_id = "${authId}"`, }); return result.items[0] ? transformPlayer(result.items[0]) : null; }, async getPlayer(id: string): Promise { const result = await pb.collection("players").getOne(id, { expand: "teams", }); return transformPlayer(result); }, async listPlayers(): Promise { const result = await pb.collection("players").getFullList({ fields: "id,first_name,last_name", }); return result.map(transformPlayer); }, async createPlayer(data: PlayerInput): Promise { const result = await pb.collection("players").create(data); return transformPlayer(result); }, async updatePlayer(id: string, data: PlayerUpdateInput): Promise { const result = await pb.collection("players").update(id, data); return transformPlayer(result); }, async getUnassociatedPlayers(): Promise { const result = await pb.collection("players").getFullList({ filter: 'auth_id = ""', fields: "id,first_name,last_name", }); return result.map(transformPlayer); }, }; }