import { Result } from '@/lib/contracts/Result'; import { Service, type DomainError } from '@/lib/contracts/services/Service'; import { type LeagueSettingsApiDto } from '@/lib/types/tbd/LeagueSettingsApiDto'; export class LeagueSettingsService implements Service { private static cachedMemberships = new Map(); async getSettingsData(leagueId: string): Promise> { // Mock data since backend not implemented const mockData: LeagueSettingsApiDto = { leagueId, league: { id: leagueId, name: 'Mock League', description: 'A mock league for demonstration', visibility: 'public', ownerId: 'owner-123', createdAt: '2024-01-01T00:00:00Z', updatedAt: '2024-01-01T00:00:00Z', }, config: { maxDrivers: 20, scoringPresetId: 'preset-1', allowLateJoin: true, requireApproval: false, }, }; return Result.ok(mockData); } static getCachedMembershipsIterator(): IterableIterator<[string, unknown[]]> { return this.cachedMemberships.entries(); } static getMembership(leagueId: string, driverId: string): unknown | null { const members = this.cachedMemberships.get(leagueId); if (!members) return null; return members.find((m: any) => m.driverId === driverId) || null; } }