This commit is contained in:
2025-12-16 11:52:26 +01:00
parent ce82b7822b
commit 9a891ac8b3
586 changed files with 1320 additions and 1563 deletions

View File

@@ -10,7 +10,7 @@ import type { ISponsorshipRequestRepository } from '../../domain/repositories/IS
import type { ISeasonSponsorshipRepository } from '../../domain/repositories/ISeasonSponsorshipRepository';
import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository';
import { SeasonSponsorship } from '../../domain/entities/SeasonSponsorship';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import type { AsyncUseCase } from '@core/shared/application';
export interface AcceptSponsorshipRequestDTO {
requestId: string;

View File

@@ -11,7 +11,7 @@ import type { ISponsorshipRequestRepository } from '../../domain/repositories/IS
import type { ISponsorshipPricingRepository } from '../../domain/repositories/ISponsorshipPricingRepository';
import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository';
import { Money, type Currency } from '../../domain/value-objects/Money';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import type { AsyncUseCase } from '@core/shared/application';
import {
EntityNotFoundError,
BusinessRuleViolationError,

View File

@@ -11,7 +11,7 @@ import type { IProtestRepository } from '../../domain/repositories/IProtestRepos
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import { randomUUID } from 'crypto';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import type { AsyncUseCase } from '@core/shared/application';
import type { Logger } from '../../../shared/src/logging/Logger';
export interface ApplyPenaltyCommand {

View File

@@ -1,6 +1,6 @@
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import type { IApproveLeagueJoinRequestPresenter, ApproveLeagueJoinRequestResultDTO, ApproveLeagueJoinRequestViewModel } from '../presenters/IApproveLeagueJoinRequestPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface ApproveLeagueJoinRequestUseCaseParams {
leagueId: string;

View File

@@ -7,7 +7,7 @@ import type {
TeamJoinRequest,
} from '../../domain/types/TeamMembership';
import type { ApproveTeamJoinRequestCommandDTO } from '../dto/TeamCommandAndQueryDTO';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import type { AsyncUseCase } from '@core/shared/application';
export class ApproveTeamJoinRequestUseCase
implements AsyncUseCase<ApproveTeamJoinRequestCommandDTO, void> {

View File

@@ -1,5 +1,5 @@
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import type { AsyncUseCase } from '@core/shared/application';
import type { Logger } from '../../../shared/src/logging/Logger';
/**

View File

@@ -1,6 +1,6 @@
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository';
import type { IDomainEventPublisher } from '@gridpilot/shared/domain';
import type { IDomainEventPublisher } from '@core/shared/domain';
import type { RaceEventStewardingClosedEvent } from '../../domain/events/RaceEventStewardingClosed';
/**

View File

@@ -1,6 +1,6 @@
import type { IDriverRepository } from '../../domain/repositories/IDriverRepository';
import type { ICompleteDriverOnboardingPresenter, CompleteDriverOnboardingResultDTO } from '../presenters/ICompleteDriverOnboardingPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
import { Driver } from '../../domain/entities/Driver';
export interface CompleteDriverOnboardingInput {

View File

@@ -5,7 +5,7 @@ import type { IStandingRepository } from '../../domain/repositories/IStandingRep
import type { DriverRatingProvider } from '../ports/DriverRatingProvider';
import { Result } from '../../domain/entities/Result';
import { Standing } from '../../domain/entities/Standing';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import type { AsyncUseCase } from '@core/shared/application';
import type { Logger } from '../../../shared/src/logging/Logger';
/**

View File

@@ -6,8 +6,8 @@ import type { DriverRatingProvider } from '../ports/DriverRatingProvider';
import { Result } from '../../domain/entities/Result';
import { Standing } from '../../domain/entities/Standing';
import { RaceResultGenerator } from '../utils/RaceResultGenerator';
import { RatingUpdateService } from '@gridpilot/identity/domain/services/RatingUpdateService';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import { RatingUpdateService } from '@core/identity/domain/services/RatingUpdateService';
import type { AsyncUseCase } from '@core/shared/application';
import type { Logger } from '../../../shared/src/logging/Logger';
/**

View File

@@ -5,7 +5,7 @@ import type { ILeagueRepository } from '../../domain/repositories/ILeagueReposit
import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository';
import type { ILeagueScoringConfigRepository } from '../../domain/repositories/ILeagueScoringConfigRepository';
import type { LeagueScoringConfig } from '../../domain/entities/LeagueScoringConfig';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import type { AsyncUseCase } from '@core/shared/application';
import type { Logger } from '../../../shared/src/logging/Logger';
import type {
LeagueScoringPresetProvider,

View File

@@ -11,7 +11,7 @@ import type {
CreateSponsorResultDTO,
CreateSponsorViewModel,
} from '../presenters/ICreateSponsorPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface CreateSponsorInput {
name: string;

View File

@@ -9,7 +9,7 @@ import type {
IAllLeaguesWithCapacityAndScoringPresenter,
LeagueEnrichedData,
} from '../presenters/IAllLeaguesWithCapacityAndScoringPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case for retrieving all leagues with capacity and scoring information.

View File

@@ -5,7 +5,7 @@ import type {
AllLeaguesWithCapacityResultDTO,
AllLeaguesWithCapacityViewModel,
} from '../presenters/IAllLeaguesWithCapacityPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case for retrieving all leagues with capacity information.

View File

@@ -1,7 +1,7 @@
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository';
import type { IGetAllRacesPresenter, GetAllRacesResultDTO, AllRacesPageViewModel } from '../presenters/IGetAllRacesPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetAllRacesUseCaseParams {}

View File

@@ -4,7 +4,7 @@ import type {
IAllTeamsPresenter,
AllTeamsResultDTO,
} from '../presenters/IAllTeamsPresenter';
import type { UseCase } from '@gridpilot/shared/application';
import type { UseCase } from '@core/shared/application';
import type { Team } from '../../domain/entities/Team';
import { Logger } from "@gridpilot/core/shared/application";

View File

@@ -6,8 +6,8 @@ import type { IStandingRepository } from '../../domain/repositories/IStandingRep
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository';
import type { IImageServicePort } from '../ports/IImageServicePort';
import type { IFeedRepository } from '@gridpilot/social/domain/repositories/IFeedRepository';
import type { ISocialGraphRepository } from '@gridpilot/social/domain/repositories/ISocialGraphRepository';
import type { IFeedRepository } from '@core/social/domain/repositories/IFeedRepository';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository';
import type {
IDashboardOverviewPresenter,
DashboardOverviewViewModel,

View File

@@ -5,7 +5,7 @@ import type {
DriverTeamResultDTO,
DriverTeamViewModel,
} from '../presenters/IDriverTeamPresenter';
import type { UseCase } from '@gridpilot/shared/application';
import type { UseCase } from '@core/shared/application';
import type { Logger } from '../../../shared/src/logging/Logger';
/**

View File

@@ -7,7 +7,7 @@ import type {
DriversLeaderboardResultDTO,
DriversLeaderboardViewModel,
} from '../presenters/IDriversLeaderboardPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case for retrieving driver leaderboard data.

View File

@@ -11,7 +11,7 @@ import type { ISeasonSponsorshipRepository } from '../../domain/repositories/ISe
import type { SponsorableEntityType } from '../../domain/entities/SponsorshipRequest';
import type { SponsorshipTier } from '../../domain/entities/SeasonSponsorship';
import type { IEntitySponsorshipPricingPresenter } from '../presenters/IEntitySponsorshipPricingPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetEntitySponsorshipPricingDTO {
entityType: SponsorableEntityType;

View File

@@ -1,7 +1,7 @@
import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository';
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import type { IGetLeagueAdminPermissionsPresenter, GetLeagueAdminPermissionsResultDTO, GetLeagueAdminPermissionsViewModel } from '../presenters/IGetLeagueAdminPermissionsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetLeagueAdminPermissionsUseCaseParams {
leagueId: string;

View File

@@ -0,0 +1,37 @@
import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository';
import type { IGetLeagueAdminPresenter, GetLeagueAdminResultDTO, GetLeagueAdminViewModel } from '../presenters/IGetLeagueAdminPresenter';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetLeagueAdminUseCaseParams {
leagueId: string;
}
export interface GetLeagueAdminResultDTO {
league: {
id: string;
ownerId: string;
};
// Additional data would be populated by combining multiple use cases
}
export class GetLeagueAdminUseCase implements UseCase<GetLeagueAdminUseCaseParams, GetLeagueAdminResultDTO, GetLeagueAdminViewModel, IGetLeagueAdminPresenter> {
constructor(
private readonly leagueRepository: ILeagueRepository,
) {}
async execute(params: GetLeagueAdminUseCaseParams, presenter: IGetLeagueAdminPresenter): Promise<void> {
const league = await this.leagueRepository.findById(params.leagueId);
if (!league) {
throw new Error('League not found');
}
const dto: GetLeagueAdminResultDTO = {
league: {
id: league.id,
ownerId: league.ownerId,
},
};
presenter.reset();
presenter.present(dto);
}
}

View File

@@ -7,7 +7,7 @@ import type {
LeagueDriverSeasonStatsResultDTO,
LeagueDriverSeasonStatsViewModel,
} from '../presenters/ILeagueDriverSeasonStatsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface DriverRatingPort {
getRating(driverId: string): { rating: number | null; ratingChange: number | null };

View File

@@ -7,7 +7,7 @@ import type {
LeagueFullConfigData,
LeagueConfigFormViewModel,
} from '../presenters/ILeagueFullConfigPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
import { EntityNotFoundError } from '../errors/RacingApplicationError';
/**

View File

@@ -1,7 +1,7 @@
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import type { IDriverRepository } from '../../domain/repositories/IDriverRepository';
import type { IGetLeagueJoinRequestsPresenter, GetLeagueJoinRequestsResultDTO, GetLeagueJoinRequestsViewModel } from '../presenters/IGetLeagueJoinRequestsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetLeagueJoinRequestsUseCaseParams {
leagueId: string;

View File

@@ -2,7 +2,7 @@ import type { ILeagueMembershipRepository } from '../../domain/repositories/ILea
import type { IDriverRepository } from '../../domain/repositories/IDriverRepository';
import type { LeagueMembership } from '../../domain/entities/LeagueMembership';
import type { IGetLeagueMembershipsPresenter, GetLeagueMembershipsViewModel } from '../presenters/IGetLeagueMembershipsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetLeagueMembershipsUseCaseParams {
leagueId: string;

View File

@@ -1,6 +1,6 @@
import type { IDriverRepository } from '../../domain/repositories/IDriverRepository';
import type { IGetLeagueOwnerSummaryPresenter, GetLeagueOwnerSummaryResultDTO, GetLeagueOwnerSummaryViewModel } from '../presenters/IGetLeagueOwnerSummaryPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetLeagueOwnerSummaryUseCaseParams {
ownerId: string;

View File

@@ -2,7 +2,7 @@ import type { IRaceRepository } from '../../domain/repositories/IRaceRepository'
import type { IProtestRepository } from '../../domain/repositories/IProtestRepository';
import type { IDriverRepository } from '../../domain/repositories/IDriverRepository';
import type { IGetLeagueProtestsPresenter, GetLeagueProtestsResultDTO, GetLeagueProtestsViewModel } from '../presenters/IGetLeagueProtestsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetLeagueProtestsUseCaseParams {
leagueId: string;

View File

@@ -1,6 +1,6 @@
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
import type { IGetLeagueSchedulePresenter, GetLeagueScheduleResultDTO, GetLeagueScheduleViewModel } from '../presenters/IGetLeagueSchedulePresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetLeagueScheduleUseCaseParams {
leagueId: string;

View File

@@ -8,7 +8,7 @@ import type {
LeagueScoringConfigData,
LeagueScoringConfigViewModel,
} from '../presenters/ILeagueScoringConfigPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case for retrieving a league's scoring configuration for its active season.

View File

@@ -1,6 +1,6 @@
import type { ISeasonRepository } from '../../domain/repositories/ISeasonRepository';
import type { IGetLeagueSeasonsPresenter, GetLeagueSeasonsResultDTO, GetLeagueSeasonsViewModel } from '../presenters/IGetLeagueSeasonsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetLeagueSeasonsUseCaseParams {
leagueId: string;

View File

@@ -5,7 +5,7 @@ import type {
LeagueStandingsResultDTO,
LeagueStandingsViewModel,
} from '../presenters/ILeagueStandingsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetLeagueStandingsUseCaseParams {
leagueId: string;

View File

@@ -1,7 +1,7 @@
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
import type { ILeagueStatsPresenter, LeagueStatsResultDTO, LeagueStatsViewModel } from '../presenters/ILeagueStatsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetLeagueStatsUseCaseParams {
leagueId: string;

View File

@@ -8,7 +8,7 @@ import type { ISponsorshipRequestRepository } from '../../domain/repositories/IS
import type { ISponsorRepository } from '../../domain/repositories/ISponsorRepository';
import type { SponsorableEntityType } from '../../domain/entities/SponsorshipRequest';
import type { SponsorshipTier } from '../../domain/entities/SeasonSponsorship';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
import type {
IPendingSponsorshipRequestsPresenter,
PendingSponsorshipRequestsViewModel,

View File

@@ -2,7 +2,7 @@ import type { IDriverRepository } from '../../domain/repositories/IDriverReposit
import type { ITeamRepository } from '../../domain/repositories/ITeamRepository';
import type { ITeamMembershipRepository } from '../../domain/repositories/ITeamMembershipRepository';
import type { IImageServicePort } from '../ports/IImageServicePort';
import type { ISocialGraphRepository } from '@gridpilot/social/domain/repositories/ISocialGraphRepository';
import type { ISocialGraphRepository } from '@core/social/domain/repositories/ISocialGraphRepository';
import type {
IProfileOverviewPresenter,
ProfileOverviewViewModel,

View File

@@ -14,7 +14,7 @@ import type {
RaceDetailEntryViewModel,
RaceDetailUserResultViewModel,
} from '../presenters/IRaceDetailPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case: GetRaceDetailUseCase

View File

@@ -12,7 +12,7 @@ import type {
RacePenaltiesResultDTO,
RacePenaltiesViewModel,
} from '../presenters/IRacePenaltiesPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetRacePenaltiesInput {
raceId: string;

View File

@@ -12,7 +12,7 @@ import type {
RaceProtestsResultDTO,
RaceProtestsViewModel,
} from '../presenters/IRaceProtestsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetRaceProtestsInput {
raceId: string;

View File

@@ -1,11 +1,11 @@
import type { IRaceRegistrationRepository } from '@gridpilot/racing/domain/repositories/IRaceRegistrationRepository';
import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository';
import type { GetRaceRegistrationsQueryParamsDTO } from '../dto/RaceRegistrationQueryDTO';
import type {
IRaceRegistrationsPresenter,
RaceRegistrationsResultDTO,
RaceRegistrationsViewModel,
} from '../presenters/IRaceRegistrationsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case: GetRaceRegistrationsUseCase

View File

@@ -8,7 +8,7 @@ import type {
RaceResultsDetailViewModel,
RaceResultsPenaltySummaryViewModel,
} from '../presenters/IRaceResultsDetailPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
import type { League } from '../../domain/entities/League';
import type { Result } from '../../domain/entities/Result';
import type { Driver } from '../../domain/entities/Driver';

View File

@@ -15,7 +15,7 @@ import {
type StrengthOfFieldCalculator,
} from '../../domain/services/StrengthOfFieldCalculator';
import type { IRaceWithSOFPresenter, RaceWithSOFResultDTO } from '../presenters/IRaceWithSOFPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetRaceWithSOFQueryParams {
raceId: string;

View File

@@ -4,8 +4,8 @@ import type {
IRacesPagePresenter,
RacesPageResultDTO,
RacesPageViewModel,
} from '@gridpilot/racing/application/presenters/IRacesPagePresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
} from '@core/racing/application/presenters/IRacesPagePresenter';
import type { UseCase } from '@core/shared/application/UseCase';
export class GetRacesPageDataUseCase
implements UseCase<void, RacesPageResultDTO, RacesPageViewModel, IRacesPagePresenter>

View File

@@ -14,7 +14,7 @@ import type {
ISponsorDashboardPresenter,
SponsorDashboardViewModel,
} from '../presenters/ISponsorDashboardPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetSponsorDashboardQueryParams {
sponsorId: string;

View File

@@ -15,7 +15,7 @@ import type {
ISponsorSponsorshipsPresenter,
SponsorSponsorshipsViewModel,
} from '../presenters/ISponsorSponsorshipsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetSponsorSponsorshipsQueryParams {
sponsorId: string;

View File

@@ -10,7 +10,7 @@ import type {
GetSponsorsResultDTO,
GetSponsorsViewModel,
} from '../presenters/IGetSponsorsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export class GetSponsorsUseCase
implements UseCase<void, GetSponsorsResultDTO, GetSponsorsViewModel, IGetSponsorsPresenter>

View File

@@ -9,7 +9,7 @@ import type {
GetSponsorshipPricingResultDTO,
GetSponsorshipPricingViewModel,
} from '../presenters/IGetSponsorshipPricingPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export class GetSponsorshipPricingUseCase
implements UseCase<void, GetSponsorshipPricingResultDTO, GetSponsorshipPricingViewModel, IGetSponsorshipPricingPresenter>

View File

@@ -5,7 +5,7 @@ import type {
TeamDetailsResultDTO,
TeamDetailsViewModel,
} from '../presenters/ITeamDetailsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case for retrieving team details.

View File

@@ -6,7 +6,7 @@ import type {
TeamJoinRequestsResultDTO,
TeamJoinRequestsViewModel,
} from '../presenters/ITeamJoinRequestsPresenter';
import type { UseCase } from '@gridpilot/shared/application';
import type { UseCase } from '@core/shared/application';
import type { Logger } from '../../../shared/src/logging/Logger';
/**

View File

@@ -6,7 +6,7 @@ import type {
TeamMembersResultDTO,
TeamMembersViewModel,
} from '../presenters/ITeamMembersPresenter';
import type { UseCase } from '@gridpilot/shared/application';
import type { UseCase } from '@core/shared/application';
import type { Logger } from '../../../shared/src/logging/Logger';
/**

View File

@@ -1,13 +1,13 @@
import type { ITeamRepository } from '@gridpilot/racing/domain/repositories/ITeamRepository';
import type { ITeamMembershipRepository } from '@gridpilot/racing/domain/repositories/ITeamMembershipRepository';
import type { IDriverRepository } from '@gridpilot/racing/domain/repositories/IDriverRepository';
import type { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository';
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/ITeamMembershipRepository';
import type { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository';
import type {
ITeamsLeaderboardPresenter,
TeamsLeaderboardResultDTO,
TeamsLeaderboardViewModel,
} from '@gridpilot/racing/application/presenters/ITeamsLeaderboardPresenter';
import { SkillLevelService } from '@gridpilot/racing/domain/services/SkillLevelService';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
} from '@core/racing/application/presenters/ITeamsLeaderboardPresenter';
import { SkillLevelService } from '@core/racing/domain/services/SkillLevelService';
import type { UseCase } from '@core/shared/application/UseCase';
interface DriverStatsAdapter {
rating: number | null;

View File

@@ -1,6 +1,6 @@
import type { IDriverRepository } from '../../domain/repositories/IDriverRepository';
import type { ITotalDriversPresenter, TotalDriversResultDTO } from '../presenters/ITotalDriversPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case for retrieving total number of drivers.

View File

@@ -1,6 +1,6 @@
import type { ILeagueRepository } from '../../domain/repositories/ILeagueRepository';
import type { IGetTotalLeaguesPresenter, GetTotalLeaguesResultDTO, GetTotalLeaguesViewModel } from '../presenters/IGetTotalLeaguesPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetTotalLeaguesUseCaseParams {}

View File

@@ -1,6 +1,6 @@
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
import type { IGetTotalRacesPresenter, GetTotalRacesResultDTO, GetTotalRacesViewModel } from '../presenters/IGetTotalRacesPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface GetTotalRacesUseCaseParams {}

View File

@@ -1,5 +1,5 @@
import type { IImportRaceResultsApiPresenter, ImportRaceResultsApiResultDTO, ImportRaceResultsSummaryViewModel } from '../presenters/IImportRaceResultsApiPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface ImportRaceResultsApiParams {
raceId: string;

View File

@@ -4,7 +4,7 @@ import type { IResultRepository } from '../../domain/repositories/IResultReposit
import type { IDriverRepository } from '../../domain/repositories/IDriverRepository';
import type { IStandingRepository } from '../../domain/repositories/IStandingRepository';
import { Result } from '../../domain/entities/Result';
import type { AsyncUseCase, Logger } from '@gridpilot/shared/application';
import type { AsyncUseCase, Logger } from '@core/shared/application';
import {
BusinessRuleViolationError,
EntityNotFoundError,

View File

@@ -1,7 +1,7 @@
import type { IRaceRegistrationRepository } from '../../domain/repositories/IRaceRegistrationRepository';
import type { IsDriverRegisteredForRaceQueryParamsDTO } from '../dto/RaceRegistrationQueryDTO';
import type { IDriverRegistrationStatusPresenter } from '../presenters/IDriverRegistrationStatusPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case: IsDriverRegisteredForRaceUseCase

View File

@@ -1,13 +1,13 @@
import type { Logger } from '../../../shared/src/logging/Logger';
import type {
ILeagueMembershipRepository,
} from '@gridpilot/racing/domain/repositories/ILeagueMembershipRepository';
import type { AsyncUseCase } from '@gridpilot/shared/application';
} from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import type { AsyncUseCase } from '@core/shared/application';
import {
LeagueMembership,
type MembershipRole,
type MembershipStatus,
} from '@gridpilot/racing/domain/entities/LeagueMembership';
} from '@core/racing/domain/entities/LeagueMembership';
import type { JoinLeagueCommandDTO } from '../dto/JoinLeagueCommandDTO';
import { BusinessRuleViolationError } from '../errors/RacingApplicationError';

View File

@@ -6,7 +6,7 @@ import type {
TeamRole,
} from '../../domain/types/TeamMembership';
import type { JoinTeamCommandDTO } from '../dto/TeamCommandAndQueryDTO';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import type { AsyncUseCase } from '@core/shared/application';
import type { Logger } from '../../../shared/src/logging/Logger';
import {
BusinessRuleViolationError,

View File

@@ -4,7 +4,7 @@ import type {
LeagueScoringPresetsResultDTO,
LeagueScoringPresetsViewModel,
} from '../presenters/ILeagueScoringPresetsPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
/**
* Use Case for listing league scoring presets.

View File

@@ -10,7 +10,7 @@ import type { IPenaltyRepository } from '../../domain/repositories/IPenaltyRepos
import type { IRaceRepository } from '../../domain/repositories/IRaceRepository';
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import { randomUUID } from 'crypto';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import type { AsyncUseCase } from '@core/shared/application';
import type { Logger } from '../../../shared/src/logging/Logger';
export interface QuickPenaltyCommand {

View File

@@ -1,15 +1,15 @@
import type { ISeasonRepository } from '@gridpilot/racing/domain/repositories/ISeasonRepository';
import type { ILeagueScoringConfigRepository } from '@gridpilot/racing/domain/repositories/ILeagueScoringConfigRepository';
import type { IRaceRepository } from '@gridpilot/racing/domain/repositories/IRaceRepository';
import type { IResultRepository } from '@gridpilot/racing/domain/repositories/IResultRepository';
import type { IPenaltyRepository } from '@gridpilot/racing/domain/repositories/IPenaltyRepository';
import type { IChampionshipStandingRepository } from '@gridpilot/racing/domain/repositories/IChampionshipStandingRepository';
import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository';
import type { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/ILeagueScoringConfigRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository';
import type { IPenaltyRepository } from '@core/racing/domain/repositories/IPenaltyRepository';
import type { IChampionshipStandingRepository } from '@core/racing/domain/repositories/IChampionshipStandingRepository';
import type { ChampionshipConfig } from '@gridpilot/racing/domain/types/ChampionshipConfig';
import type { SessionType } from '@gridpilot/racing/domain/types/SessionType';
import type { ChampionshipStanding } from '@gridpilot/racing/domain/entities/ChampionshipStanding';
import { EventScoringService } from '@gridpilot/racing/domain/services/EventScoringService';
import { ChampionshipAggregator } from '@gridpilot/racing/domain/services/ChampionshipAggregator';
import type { ChampionshipConfig } from '@core/racing/domain/types/ChampionshipConfig';
import type { SessionType } from '@core/racing/domain/types/SessionType';
import type { ChampionshipStanding } from '@core/racing/domain/entities/ChampionshipStanding';
import { EventScoringService } from '@core/racing/domain/services/EventScoringService';
import { ChampionshipAggregator } from '@core/racing/domain/services/ChampionshipAggregator';
import type {
ChampionshipStandingsDTO,

View File

@@ -1,9 +1,9 @@
import type { IRaceRegistrationRepository } from '@gridpilot/racing/domain/repositories/IRaceRegistrationRepository';
import type { ILeagueMembershipRepository } from '@gridpilot/racing/domain/repositories/ILeagueMembershipRepository';
import { RaceRegistration } from '@gridpilot/racing/domain/entities/RaceRegistration';
import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration';
import type { RegisterForRaceCommandDTO } from '../dto/RegisterForRaceCommandDTO';
import type { AsyncUseCase } from '@gridpilot/shared/application';
import { Logger } from '@gridpilot/shared/logging/Logger';
import type { AsyncUseCase } from '@core/shared/application';
import { Logger } from '@core/shared/logging/Logger';
import {
BusinessRuleViolationError,
PermissionDeniedError,

View File

@@ -1,6 +1,6 @@
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import type { IRejectLeagueJoinRequestPresenter, RejectLeagueJoinRequestResultDTO, RejectLeagueJoinRequestViewModel } from '../presenters/IRejectLeagueJoinRequestPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface RejectLeagueJoinRequestUseCaseParams {
requestId: string;

View File

@@ -1,6 +1,6 @@
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import type { IRemoveLeagueMemberPresenter, RemoveLeagueMemberResultDTO, RemoveLeagueMemberViewModel } from '../presenters/IRemoveLeagueMemberPresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface RemoveLeagueMemberUseCaseParams {
leagueId: string;

View File

@@ -1,4 +1,4 @@
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
import type { INotificationService } from '../../../notifications/application/ports/INotificationService';
import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository';
import type { IResultRepository } from '../../domain/repositories/IResultRepository';

View File

@@ -1,4 +1,4 @@
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
import type { INotificationService } from '../../../notifications/application/ports/INotificationService';
import type { IRaceEventRepository } from '../../domain/repositories/IRaceEventRepository';
import type { IResultRepository } from '../../domain/repositories/IResultRepository';

View File

@@ -1,11 +1,11 @@
import type {
ILeagueMembershipRepository,
} from '@gridpilot/racing/domain/repositories/ILeagueMembershipRepository';
import type { ILeagueRepository } from '@gridpilot/racing/domain/repositories/ILeagueRepository';
} from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository';
import type {
LeagueMembership,
MembershipRole,
} from '@gridpilot/racing/domain/entities/LeagueMembership';
} from '@core/racing/domain/entities/LeagueMembership';
export interface TransferLeagueOwnershipCommandDTO {
leagueId: string;

View File

@@ -1,6 +1,6 @@
import type { ILeagueMembershipRepository } from '../../domain/repositories/ILeagueMembershipRepository';
import type { IUpdateLeagueMemberRolePresenter, UpdateLeagueMemberRoleResultDTO, UpdateLeagueMemberRoleViewModel } from '../presenters/IUpdateLeagueMemberRolePresenter';
import type { UseCase } from '@gridpilot/shared/application/UseCase';
import type { UseCase } from '@core/shared/application/UseCase';
export interface UpdateLeagueMemberRoleUseCaseParams {
leagueId: string;

View File

@@ -1,4 +1,4 @@
import type { IRaceRegistrationRepository } from '@gridpilot/racing/domain/repositories/IRaceRegistrationRepository';
import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository';
import type { WithdrawFromRaceCommandDTO } from '../dto/WithdrawFromRaceCommandDTO';
/**