33 lines
827 B
TypeScript
33 lines
827 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 DriverTeamViewModel {
|
|
team: {
|
|
id: string;
|
|
name: string;
|
|
tag: string;
|
|
description: string;
|
|
ownerId: string;
|
|
leagues: string[];
|
|
specialization?: 'endurance' | 'sprint' | 'mixed';
|
|
region?: string;
|
|
languages?: string[];
|
|
};
|
|
membership: {
|
|
role: 'owner' | 'manager' | 'member';
|
|
joinedAt: string;
|
|
isActive: boolean;
|
|
};
|
|
isOwner: boolean;
|
|
canManage: boolean;
|
|
}
|
|
|
|
export interface DriverTeamResultDTO {
|
|
team: Team;
|
|
membership: TeamMembership;
|
|
driverId: string;
|
|
}
|
|
|
|
export interface IDriverTeamPresenter
|
|
extends Presenter<DriverTeamResultDTO, DriverTeamViewModel> {} |