Files
gridpilot.gg/apps/website/lib/services/leagues/LeagueSponsorshipsService.ts
Marc Mintel 6c07abe5e7
Some checks failed
Contract Testing / contract-snapshot (pull_request) Has been cancelled
Contract Testing / contract-tests (pull_request) Has been cancelled
view data fixes
2026-01-25 00:12:30 +01:00

70 lines
2.0 KiB
TypeScript

import { Result } from '@/lib/contracts/Result';
import { Service, DomainError } from '@/lib/contracts/services/Service';
import { LeagueSponsorshipsApiDto } from '@/lib/types/tbd/LeagueSponsorshipsApiDto';
export class LeagueSponsorshipsService implements Service {
async getSponsorshipsData(leagueId: string): Promise<Result<LeagueSponsorshipsApiDto, DomainError>> {
// Mock data since backend not implemented
const mockData: LeagueSponsorshipsApiDto = {
leagueId,
league: {
id: leagueId,
name: 'Mock League',
description: 'A league with sponsorship opportunities',
},
sponsorshipSlots: [
{
id: 'slot-1',
name: 'Main Sponsor',
description: 'Primary sponsorship slot',
price: 5000,
currency: 'USD',
isAvailable: false,
sponsoredBy: {
id: 'sponsor-1',
name: 'Acme Racing',
logoUrl: 'https://example.com/logo.png',
},
},
{
id: 'slot-2',
name: 'Helmet Sponsor',
description: 'Helmet branding sponsorship',
price: 2000,
currency: 'USD',
isAvailable: true,
},
{
id: 'slot-3',
name: 'Car Sponsor',
description: 'Car livery sponsorship',
price: 3000,
currency: 'USD',
isAvailable: true,
},
],
sponsorshipRequests: [
{
id: 'request-1',
slotId: 'slot-2',
sponsorId: 'sponsor-2',
sponsorName: 'SpeedWorks',
requestedAt: '2024-10-01T10:00:00Z',
status: 'pending',
},
],
sponsorships: [
{
id: 'sponsorship-1',
slotId: 'slot-1',
sponsorId: 'sponsor-1',
sponsorName: 'Acme Racing',
requestedAt: '2024-09-01T10:00:00Z',
status: 'approved',
},
],
};
return Result.ok(mockData);
}
}