refactor driver module (wip)

This commit is contained in:
2025-12-22 10:24:40 +01:00
parent e7dbec4a85
commit 9da528d5bd
108 changed files with 842 additions and 947 deletions

View File

@@ -1,36 +1,37 @@
import type { GetTeamDetailsOutputPort } from '@core/racing/application/ports/output/GetTeamDetailsOutputPort';
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
import type { GetTeamDetailsResult } from '@core/racing/application/use-cases/GetTeamDetailsUseCase';
import type { GetTeamDetailsOutputDTO } from '../dtos/GetTeamDetailsOutputDTO';
export class TeamDetailsPresenter {
export class TeamDetailsPresenter implements UseCaseOutputPort<GetTeamDetailsResult> {
private result: GetTeamDetailsOutputDTO | null = null;
reset() {
this.result = null;
}
async present(outputPort: GetTeamDetailsOutputPort): Promise<void> {
present(result: GetTeamDetailsResult): void {
this.result = {
team: {
id: outputPort.team.id,
name: outputPort.team.name,
tag: outputPort.team.tag,
description: outputPort.team.description,
ownerId: outputPort.team.ownerId,
leagues: outputPort.team.leagues,
createdAt: outputPort.team.createdAt.toISOString(),
id: result.team.id,
name: result.team.name.toString(),
tag: result.team.tag.toString(),
description: result.team.description?.toString() || '',
ownerId: result.team.ownerId.toString(),
leagues: result.team.leagues?.map(l => l.toString()) || [],
createdAt: result.team.createdAt.toDate().toISOString(),
},
membership: outputPort.membership
membership: result.membership
? {
role: outputPort.membership.role,
joinedAt: outputPort.membership.joinedAt.toISOString(),
isActive: outputPort.membership.isActive,
role: result.membership.role === 'driver' ? 'member' : result.membership.role,
joinedAt: result.membership.joinedAt.toISOString(),
isActive: result.membership.status === 'active',
}
: null,
canManage: outputPort.canManage,
canManage: result.canManage,
};
}
getViewModel(): GetTeamDetailsOutputDTO | null {
getResponseModel(): GetTeamDetailsOutputDTO | null {
return this.result;
}
}