resolve manual DTOs
This commit is contained in:
@@ -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';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user