resolve manual DTOs

This commit is contained in:
2025-12-18 22:19:40 +01:00
parent 4a3087ae35
commit d617654928
179 changed files with 3716 additions and 1257 deletions

View File

@@ -1,30 +1,23 @@
// Note: No generated DTO available for TeamMember yet
interface DriverDTO {
id: string;
name: string;
avatarUrl?: string;
iracingId?: string;
rating?: number;
}
interface TeamMemberDTO {
driverId: string;
driver?: DriverDTO;
role: string;
joinedAt: string;
}
import type { TeamMemberDTO } from '@/lib/types/generated/GetTeamMembersOutputDTO';
export class TeamMemberViewModel {
driverId: string;
driver?: any;
role: string;
driverName: string;
role: 'owner' | 'manager' | 'member';
joinedAt: string;
isActive: boolean;
avatarUrl: string;
private currentUserId: string;
private teamOwnerId: string;
constructor(dto: TeamMemberDTO, currentUserId: string, teamOwnerId: string) {
Object.assign(this, dto);
this.driverId = dto.driverId;
this.driverName = dto.driverName;
this.role = dto.role;
this.joinedAt = dto.joinedAt;
this.isActive = dto.isActive;
this.avatarUrl = dto.avatarUrl;
this.currentUserId = currentUserId;
this.teamOwnerId = teamOwnerId;
}
@@ -33,7 +26,7 @@ export class TeamMemberViewModel {
get roleBadgeVariant(): string {
switch (this.role) {
case 'owner': return 'primary';
case 'captain': return 'secondary';
case 'manager': return 'secondary';
case 'member': return 'default';
default: return 'default';
}