services refactor

This commit is contained in:
2025-12-17 22:17:02 +01:00
parent 26f7a2b6aa
commit 055a7f67b5
93 changed files with 7434 additions and 659 deletions

View File

@@ -0,0 +1,6 @@
export interface AnalyticsDashboardDto {
totalUsers: number;
activeUsers: number;
totalRaces: number;
totalLeagues: number;
}

View File

@@ -0,0 +1,6 @@
export interface AnalyticsMetricsDto {
pageViews: number;
uniqueVisitors: number;
averageSessionDuration: number;
bounceRate: number;
}

View File

@@ -0,0 +1,8 @@
/**
* Delete media output data transfer object
* Output from deleting media
*/
export interface DeleteMediaOutputDto {
success: boolean;
error?: string;
}

View File

@@ -0,0 +1,9 @@
/**
* Get avatar output data transfer object
* Output from getting avatar information
*/
export interface GetAvatarOutputDto {
driverId: string;
avatarUrl?: string;
hasAvatar: boolean;
}

View File

@@ -0,0 +1,12 @@
/**
* Get media output data transfer object
* Output from getting media information
*/
export interface GetMediaOutputDto {
id: string;
url: string;
type: 'image' | 'video' | 'document';
category?: 'avatar' | 'team-logo' | 'league-cover' | 'race-result';
uploadedAt: string;
size?: number;
}

View File

@@ -0,0 +1,8 @@
/**
* Update avatar input data transfer object
* Input for updating driver avatar
*/
export interface UpdateAvatarInputDto {
driverId: string;
avatarUrl: string;
}

View File

@@ -0,0 +1,8 @@
/**
* Update avatar output data transfer object
* Output from updating avatar
*/
export interface UpdateAvatarOutputDto {
success: boolean;
error?: string;
}

View File

@@ -0,0 +1,9 @@
/**
* Upload media input data transfer object
* Input for uploading media files
*/
export interface UploadMediaInputDto {
file: File;
type: 'image' | 'video' | 'document';
category?: 'avatar' | 'team-logo' | 'league-cover' | 'race-result';
}

View File

@@ -0,0 +1,10 @@
/**
* Upload media output data transfer object
* Output from media upload operation
*/
export interface UploadMediaOutputDto {
success: boolean;
mediaId?: string;
url?: string;
error?: string;
}

View File

@@ -1,113 +0,0 @@
// Common DTOs
export type { DriverDto } from './DriverDto';
export type { PenaltyDataDto } from './PenaltyDataDto';
export type { PenaltyTypeDto } from './PenaltyTypeDto';
export type { ProtestDto } from './ProtestDto';
export type { StandingEntryDto } from './StandingEntryDto';
// Analytics DTOs
export type { RecordEngagementInputDto } from './RecordEngagementInputDto';
export type { RecordEngagementOutputDto } from './RecordEngagementOutputDto';
export type { RecordPageViewInputDto } from './RecordPageViewInputDto';
export type { RecordPageViewOutputDto } from './RecordPageViewOutputDto';
// Auth DTOs
export type { LoginParamsDto } from './LoginParamsDto';
export type { SessionDataDto } from './SessionDataDto';
export type { SignupParamsDto } from './SignupParamsDto';
// League DTOs
export type { AllLeaguesWithCapacityDto } from './AllLeaguesWithCapacityDto';
export type { CreateLeagueInputDto } from './CreateLeagueInputDto';
export type { CreateLeagueOutputDto } from './CreateLeagueOutputDto';
export type { LeagueAdminDto } from './LeagueAdminDto';
export type { LeagueAdminPermissionsDto } from './LeagueAdminPermissionsDto';
export type { LeagueAdminProtestsDto } from './LeagueAdminProtestsDto';
export type { LeagueConfigFormModelDto } from './LeagueConfigFormModelDto';
export type { LeagueJoinRequestDto } from './LeagueJoinRequestDto';
export type { LeagueMembershipsDto } from './LeagueMembershipsDto';
export type { LeagueMemberDto } from './LeagueMemberDto';
export type { LeagueOwnerSummaryDto } from './LeagueOwnerSummaryDto';
export type { LeagueScheduleDto } from './LeagueScheduleDto';
export type { LeagueSeasonSummaryDto } from './LeagueSeasonSummaryDto';
export type { LeagueStandingsDto } from './LeagueStandingsDto';
export type { LeagueStatsDto } from './LeagueStatsDto';
export type { LeagueSummaryDto } from './LeagueSummaryDto';
// Race DTOs
export type { AllRacesPageDto } from './AllRacesPageDto';
export type { ImportRaceResultsInputDto } from './ImportRaceResultsInputDto';
export type { ImportRaceResultsSummaryDto } from './ImportRaceResultsSummaryDto';
export type { RaceDetailDto } from './RaceDetailDto';
export type { RaceDetailEntryDto } from './RaceDetailEntryDto';
export type { RaceDetailLeagueDto } from './RaceDetailLeagueDto';
export type { RaceDetailRaceDto } from './RaceDetailRaceDto';
export type { RaceDetailRegistrationDto } from './RaceDetailRegistrationDto';
export type { RaceDetailUserResultDto } from './RaceDetailUserResultDto';
export type { RaceListItemDto } from './RaceListItemDto';
export type { RacePenaltiesDto } from './RacePenaltiesDto';
export type { RacePenaltyDto } from './RacePenaltyDto';
export type { RaceProtestsDto } from './RaceProtestsDto';
export type { RaceProtestDto } from './RaceProtestDto';
export type { RaceResultDto } from './RaceResultDto';
export type { RaceResultRowDto } from './RaceResultRowDto';
export type { RaceResultsDetailDto } from './RaceResultsDetailDto';
export type { RaceStatsDto } from './RaceStatsDto';
export type { RaceWithSOFDto } from './RaceWithSOFDto';
export type { RacesPageDataDto } from './RacesPageDataDto';
export type { RacesPageDataRaceDto } from './RacesPageDataRaceDto';
export type { RegisterForRaceInputDto } from './RegisterForRaceInputDto';
export type { ScheduledRaceDto } from './ScheduledRaceDto';
export type { WithdrawFromRaceInputDto } from './WithdrawFromRaceInputDto';
// Driver DTOs
export type { CompleteOnboardingInputDto } from './CompleteOnboardingInputDto';
export type { CompleteOnboardingOutputDto } from './CompleteOnboardingOutputDto';
export type { DriverLeaderboardItemDto } from './DriverLeaderboardItemDto';
export type { DriverRegistrationStatusDto } from './DriverRegistrationStatusDto';
export type { DriverRowDto } from './DriverRowDto';
export type { DriverStatsDto } from './DriverStatsDto';
export type { DriverTeamDto } from './DriverTeamDto';
export type { DriversLeaderboardDto } from './DriversLeaderboardDto';
// Team DTOs
export type { AllTeamsDto } from './AllTeamsDto';
export type { CreateTeamInputDto } from './CreateTeamInputDto';
export type { CreateTeamOutputDto } from './CreateTeamOutputDto';
export type { TeamDetailsDto } from './TeamDetailsDto';
export type { TeamJoinRequestItemDto } from './TeamJoinRequestItemDto';
export type { TeamJoinRequestsDto } from './TeamJoinRequestsDto';
export type { TeamMemberDto } from './TeamMemberDto';
export type { TeamMembersDto } from './TeamMembersDto';
export type { TeamSummaryDto } from './TeamSummaryDto';
export type { UpdateTeamInputDto } from './UpdateTeamInputDto';
export type { UpdateTeamOutputDto } from './UpdateTeamOutputDto';
// Sponsor DTOs
export type { CreateSponsorInputDto } from './CreateSponsorInputDto';
export type { CreateSponsorOutputDto } from './CreateSponsorOutputDto';
export type { GetEntitySponsorshipPricingResultDto } from './GetEntitySponsorshipPricingResultDto';
export type { GetSponsorsOutputDto } from './GetSponsorsOutputDto';
export type { SponsorDashboardDto } from './SponsorDashboardDto';
export type { SponsorDto } from './SponsorDto';
export type { SponsorshipDetailDto } from './SponsorshipDetailDto';
export type { SponsorSponsorshipsDto } from './SponsorSponsorshipsDto';
// Media DTOs
export type { RequestAvatarGenerationInputDto } from './RequestAvatarGenerationInputDto';
export type { RequestAvatarGenerationOutputDto } from './RequestAvatarGenerationOutputDto';
// Payments DTOs
export type { CreatePaymentInputDto } from './CreatePaymentInputDto';
export type { CreatePaymentOutputDto } from './CreatePaymentOutputDto';
export type { GetMembershipFeesOutputDto } from './GetMembershipFeesOutputDto';
export type { GetPaymentsOutputDto } from './GetPaymentsOutputDto';
export type { GetPrizesOutputDto } from './GetPrizesOutputDto';
export type { GetWalletOutputDto } from './GetWalletOutputDto';
export type { ImportResultRowDto } from './ImportResultRowDto';
export type { MemberPaymentDto } from './MemberPaymentDto';
export type { MembershipFeeDto } from './MembershipFeeDto';
export type { PaymentDto } from './PaymentDto';
export type { PrizeDto } from './PrizeDto';
export type { WalletDto } from './WalletDto';
export type { WalletTransactionDto } from './WalletTransactionDto';