41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
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<string, unknown[]>();
|
|
|
|
async getSettingsData(leagueId: string): Promise<Result<LeagueSettingsApiDto, DomainError>> {
|
|
// 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;
|
|
}
|
|
}
|