34 lines
854 B
TypeScript
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> {} |