Files
gridpilot.gg/packages/racing/application/presenters/IAllLeaguesWithCapacityPresenter.ts
2025-12-12 01:11:36 +01:00

34 lines
854 B
TypeScript

import type { League } from '../../domain/entities/League';
import type { Presenter } from '@gridpilot/shared/presentation';
export interface LeagueWithCapacityViewModel {
id: string;
name: string;
description: string;
ownerId: string;
settings: {
maxDrivers: number;
sessionDuration?: number;
visibility?: string;
};
createdAt: string;
socialLinks?: {
discordUrl?: string;
youtubeUrl?: string;
websiteUrl?: string;
};
usedSlots: number;
}
export interface AllLeaguesWithCapacityViewModel {
leagues: LeagueWithCapacityViewModel[];
totalCount: number;
}
export interface AllLeaguesWithCapacityResultDTO {
leagues: League[];
memberCounts: Map<string, number>;
}
export interface IAllLeaguesWithCapacityPresenter
extends Presenter<AllLeaguesWithCapacityResultDTO, AllLeaguesWithCapacityViewModel> {}