Files
gridpilot.gg/core/racing/application/presenters/ITeamDetailsPresenter.ts
2025-12-16 11:52:26 +01:00

30 lines
747 B
TypeScript

import type { Team } from '../../domain/entities/Team';
import type { TeamMembership } from '../../domain/types/TeamMembership';
import type { Presenter } from '@core/shared/presentation';
export interface TeamDetailsViewModel {
team: {
id: string;
name: string;
tag: string;
description: string;
ownerId: string;
leagues: string[];
createdAt: string;
};
membership: {
role: 'owner' | 'manager' | 'member';
joinedAt: string;
isActive: boolean;
} | null;
canManage: boolean;
}
export interface TeamDetailsResultDTO {
team: Team;
membership: TeamMembership | null;
driverId: string;
}
export interface ITeamDetailsPresenter
extends Presenter<TeamDetailsResultDTO, TeamDetailsViewModel> {}