website refactor

This commit is contained in:
2026-01-16 13:48:18 +01:00
parent 20a42c52fd
commit 7e02fc3ea5
796 changed files with 1946 additions and 2545 deletions

View File

@@ -3,7 +3,7 @@ import { InMemoryCarRepository } from './InMemoryCarRepository';
import { Car } from '@core/racing/domain/entities/Car';
import { CarClass } from '@core/racing/domain/entities/CarClass';
import { CarLicense } from '@core/racing/domain/entities/CarLicense';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryCarRepository', () => {
let repository: InMemoryCarRepository;

View File

@@ -9,10 +9,10 @@ import { v4 as uuidv4 } from 'uuid';
import { Car } from '@core/racing/domain/entities/Car';
import { CarClass } from '@core/racing/domain/entities/CarClass';
import { CarLicense } from '@core/racing/domain/entities/CarLicense';
import type { ICarRepository } from '@core/racing/domain/repositories/ICarRepository';
import type { Logger } from '@core/shared/application';
import type { CarRepository } from '@core/racing/domain/repositories/CarRepository';
import type { Logger } from '@core/shared/domain';
export class InMemoryCarRepository implements ICarRepository {
export class InMemoryCarRepository implements CarRepository {
private cars: Map<string, Car>;
private readonly logger: Logger;

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryDriverRepository } from './InMemoryDriverRepository';
import { Driver } from '@core/racing/domain/entities/Driver';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
import { MediaReference } from '@core/domain/media/MediaReference';
describe('InMemoryDriverRepository', () => {

View File

@@ -1,9 +1,9 @@
import { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository';
import { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import { Driver } from '@core/racing/domain/entities/Driver';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
import { MediaReference } from '@core/domain/media/MediaReference';
export class InMemoryDriverRepository implements IDriverRepository {
export class InMemoryDriverRepository implements DriverRepository {
private drivers: Map<string, Driver> = new Map();
private iracingIdIndex: Map<string, string> = new Map(); // iracingId -> driverId

View File

@@ -5,11 +5,11 @@
* Stores computed driver statistics for caching and frontend queries.
*/
import type { IDriverStatsRepository } from '@core/racing/domain/repositories/IDriverStatsRepository';
import type { DriverStats } from '@core/racing/application/use-cases/IDriverStatsUseCase';
import type { Logger } from '@core/shared/application';
import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
import type { DriverStats } from '@core/racing/application/use-cases/DriverStatsUseCase';
import type { Logger } from '@core/shared/domain';
export class InMemoryDriverStatsRepository implements IDriverStatsRepository {
export class InMemoryDriverStatsRepository implements DriverStatsRepository {
private stats = new Map<string, DriverStats>();
constructor(private readonly logger: Logger) {

View File

@@ -1,6 +1,6 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryGameRepository } from './InMemoryGameRepository';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryGameRepository', () => {
let repository: InMemoryGameRepository;

View File

@@ -1,8 +1,8 @@
import { IGameRepository } from '@core/racing/domain/repositories/IGameRepository';
import { GameRepository } from '@core/racing/domain/repositories/GameRepository';
import { Game } from '@core/racing/domain/entities/Game';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
export class InMemoryGameRepository implements IGameRepository {
export class InMemoryGameRepository implements GameRepository {
private games: Map<string, Game> = new Map();
constructor(private readonly logger: Logger) {

View File

@@ -1,5 +1,5 @@
import { beforeEach, describe, expect, it, vi } from 'vitest';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
import { InMemoryLeagueMembershipRepository } from './InMemoryLeagueMembershipRepository';
describe('InMemoryLeagueMembershipRepository', () => {

View File

@@ -1,9 +1,9 @@
import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import { LeagueMembership } from '@core/racing/domain/entities/LeagueMembership';
import { JoinRequest } from '@core/racing/domain/entities/JoinRequest';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
export class InMemoryLeagueMembershipRepository implements ILeagueMembershipRepository {
export class InMemoryLeagueMembershipRepository implements LeagueMembershipRepository {
private memberships: Map<string, LeagueMembership> = new Map(); // Key: `${leagueId}:${driverId}`
private joinRequests: Map<string, JoinRequest> = new Map(); // Key: requestId

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryLeagueRepository } from './InMemoryLeagueRepository';
import { League } from '@core/racing/domain/entities/League';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryLeagueRepository', () => {
let repository: InMemoryLeagueRepository;

View File

@@ -1,9 +1,9 @@
import { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository';
import { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import { League } from '@core/racing/domain/entities/League';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
import { MediaReference } from '@core/domain/media/MediaReference';
export class InMemoryLeagueRepository implements ILeagueRepository {
export class InMemoryLeagueRepository implements LeagueRepository {
private leagues: Map<string, League> = new Map();
private readonly logger: Logger;

View File

@@ -3,7 +3,7 @@ import { InMemoryLeagueScoringConfigRepository } from './InMemoryLeagueScoringCo
import { LeagueScoringConfig, type LeagueScoringConfigProps } from '@core/racing/domain/entities/LeagueScoringConfig';
import type { ChampionshipConfig } from '@core/racing/domain/types/ChampionshipConfig';
import { PointsTable } from '@core/racing/domain/value-objects/PointsTable';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
const mockPointsTable = new PointsTable({ 1: 25, 2: 18, 3: 15 });

View File

@@ -1,8 +1,8 @@
import { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/ILeagueScoringConfigRepository';
import { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository';
import { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
export class InMemoryLeagueScoringConfigRepository implements ILeagueScoringConfigRepository {
export class InMemoryLeagueScoringConfigRepository implements LeagueScoringConfigRepository {
private configs: Map<string, LeagueScoringConfig> = new Map(); // Key: seasonId
constructor(private readonly logger: Logger) {

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryLeagueStandingsRepository } from './InMemoryLeagueStandingsRepository';
import type { Logger } from '@core/shared/application';
import type { RawStanding } from '@core/league/application/ports/ILeagueStandingsRepository';
import type { Logger } from '@core/shared/domain';
import type { RawStanding } from '@core/league/application/ports/LeagueStandingsRepository';
describe('InMemoryLeagueStandingsRepository', () => {
let repository: InMemoryLeagueStandingsRepository;

View File

@@ -1,7 +1,7 @@
import { ILeagueStandingsRepository, RawStanding } from '@core/league/application/ports/ILeagueStandingsRepository';
import { Logger } from '@core/shared/application';
import { LeagueStandingsRepository, RawStanding } from '@core/league/application/ports/LeagueStandingsRepository';
import { Logger } from '@core/shared/domain';
export class InMemoryLeagueStandingsRepository implements ILeagueStandingsRepository {
export class InMemoryLeagueStandingsRepository implements LeagueStandingsRepository {
private standings: Map<string, RawStanding[]> = new Map(); // Key: leagueId
constructor(private readonly logger: Logger) {

View File

@@ -2,7 +2,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryLeagueWalletRepository } from './InMemoryLeagueWalletRepository';
import { LeagueWallet } from '@core/racing/domain/entities/league-wallet/LeagueWallet';
import { Money } from '@core/racing/domain/value-objects/Money';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryLeagueWalletRepository', () => {
let repository: InMemoryLeagueWalletRepository;

View File

@@ -5,10 +5,10 @@
*/
import { LeagueWallet } from '@core/racing/domain/entities/league-wallet/LeagueWallet';
import type { ILeagueWalletRepository } from '@core/racing/domain/repositories/ILeagueWalletRepository';
import type { Logger } from '@core/shared/application';
import type { LeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository';
import type { Logger } from '@core/shared/domain';
export class InMemoryLeagueWalletRepository implements ILeagueWalletRepository {
export class InMemoryLeagueWalletRepository implements LeagueWalletRepository {
private wallets: Map<string, LeagueWallet> = new Map();
private readonly logger: Logger;

View File

@@ -3,7 +3,7 @@ import { InMemoryLiveryRepository } from './InMemoryLiveryRepository';
import { DriverLivery } from '@core/racing/domain/entities/DriverLivery';
import { LiveryTemplate } from '@core/racing/domain/entities/LiveryTemplate';
import { LiveryDecal } from '@core/racing/domain/value-objects/LiveryDecal';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryLiveryRepository', () => {
let repository: InMemoryLiveryRepository;

View File

@@ -6,10 +6,10 @@
import type { DriverLivery } from '../../../../core/racing/domain/entities/DriverLivery';
import type { LiveryTemplate } from '../../../../core/racing/domain/entities/LiveryTemplate';
import type { ILiveryRepository } from '../../../../core/racing/domain/repositories/ILiveryRepository';
import type { Logger } from '@core/shared/application';
import type { LiveryRepository } from '../../../../core/racing/domain/repositories/LiveryRepository';
import type { Logger } from '@core/shared/domain';
export class InMemoryLiveryRepository implements ILiveryRepository {
export class InMemoryLiveryRepository implements LiveryRepository {
private driverLiveries: Map<string, DriverLivery> = new Map();
private templates: Map<string, LiveryTemplate> = new Map();
private readonly logger: Logger;

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryPenaltyRepository } from './InMemoryPenaltyRepository';
import { Penalty } from '@core/racing/domain/entities/penalty/Penalty';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryPenaltyRepository', () => {
let repository: InMemoryPenaltyRepository;

View File

@@ -5,10 +5,10 @@
*/
import type { Penalty } from '@core/racing/domain/entities/penalty/Penalty';
import type { IPenaltyRepository } from '@core/racing/domain/repositories/IPenaltyRepository';
import type { Logger } from '@core/shared/application';
import type { PenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository';
import type { Logger } from '@core/shared/domain';
export class InMemoryPenaltyRepository implements IPenaltyRepository {
export class InMemoryPenaltyRepository implements PenaltyRepository {
private penalties: Map<string, Penalty> = new Map();
private readonly logger: Logger;

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryProtestRepository } from './InMemoryProtestRepository';
import { Protest } from '@core/racing/domain/entities/Protest';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryProtestRepository', () => {
let repository: InMemoryProtestRepository;

View File

@@ -1,8 +1,8 @@
import { IProtestRepository } from '@core/racing/domain/repositories/IProtestRepository';
import { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import { Protest } from '@core/racing/domain/entities/Protest';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
export class InMemoryProtestRepository implements IProtestRepository {
export class InMemoryProtestRepository implements ProtestRepository {
private protests: Map<string, Protest> = new Map();
constructor(private readonly logger: Logger) {

View File

@@ -3,7 +3,7 @@ import { InMemoryRaceEventRepository } from './InMemoryRaceEventRepository';
import { RaceEvent } from '@core/racing/domain/entities/RaceEvent';
import { Session } from '@core/racing/domain/entities/Session';
import { SessionType } from '@core/racing/domain/value-objects/SessionType';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryRaceEventRepository', () => {
let repository: InMemoryRaceEventRepository;

View File

@@ -1,11 +1,11 @@
/**
* In-memory implementation of IRaceEventRepository for development/testing.
*/
import type { IRaceEventRepository } from '@core/racing/domain/repositories/IRaceEventRepository';
import type { RaceEventRepository } from '@core/racing/domain/repositories/RaceEventRepository';
import type { RaceEvent } from '@core/racing/domain/entities/RaceEvent';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
export class InMemoryRaceEventRepository implements IRaceEventRepository {
export class InMemoryRaceEventRepository implements RaceEventRepository {
private raceEvents: Map<string, RaceEvent> = new Map();
private readonly logger: Logger;

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryRaceRegistrationRepository } from './InMemoryRaceRegistrationRepository';
import { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryRaceRegistrationRepository', () => {
let repository: InMemoryRaceRegistrationRepository;

View File

@@ -1,8 +1,8 @@
import { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository';
import { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
export class InMemoryRaceRegistrationRepository implements IRaceRegistrationRepository {
export class InMemoryRaceRegistrationRepository implements RaceRegistrationRepository {
private registrations: Map<string, RaceRegistration> = new Map(); // Key: `${raceId}:${driverId}`
constructor(private readonly logger: Logger) {

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryRaceRepository } from './InMemoryRaceRepository';
import { Race, type RaceStatusValue } from '@core/racing/domain/entities/Race';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryRaceRepository', () => {
let repository: InMemoryRaceRepository;

View File

@@ -1,8 +1,8 @@
import { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import { Race, type RaceStatusValue } from '@core/racing/domain/entities/Race';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
export class InMemoryRaceRepository implements IRaceRepository {
export class InMemoryRaceRepository implements RaceRepository {
private races: Map<string, Race> = new Map();
constructor(private readonly logger: Logger) {

View File

@@ -1,8 +1,8 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryResultRepository } from './InMemoryResultRepository';
import { Result } from '@core/racing/domain/entities/result/Result';
import type { Logger } from '@core/shared/application';
import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import type { Logger } from '@core/shared/domain';
import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
describe('InMemoryResultRepository', () => {
let repository: InMemoryResultRepository;

View File

@@ -7,11 +7,11 @@
import { v4 as uuidv4 } from 'uuid';
import { Result } from '@core/racing/domain/entities/result/Result';
import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import type { Logger } from '@core/shared/application';
import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import type { Logger } from '@core/shared/domain';
export class InMemoryResultRepository implements IResultRepository {
export class InMemoryResultRepository implements ResultRepository {
private results: Map<string, Result>;
private raceRepository: IRaceRepository | null;
private readonly logger: Logger;

View File

@@ -9,7 +9,7 @@ import { Game } from '@core/racing/domain/entities/Game';
import { Season } from '@core/racing/domain/entities/season/Season';
import { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig';
import { ChampionshipStanding } from '@core/racing/domain/entities/championship/ChampionshipStanding';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryScoringRepositories', () => {
let mockLogger: Logger;

View File

@@ -1,15 +1,15 @@
import { Game } from '@core/racing/domain/entities/Game';
import { Season } from '@core/racing/domain/entities/season/Season';
import type { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig';
import type { IGameRepository } from '@core/racing/domain/repositories/IGameRepository';
import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository';
import type { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/ILeagueScoringConfigRepository';
import type { IChampionshipStandingRepository } from '@core/racing/domain/repositories/IChampionshipStandingRepository';
import type { GameRepository } from '@core/racing/domain/repositories/GameRepository';
import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import type { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository';
import type { ChampionshipStandingRepository } from '@core/racing/domain/repositories/ChampionshipStandingRepository';
import { ChampionshipStanding } from '@core/racing/domain/entities/championship/ChampionshipStanding';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
export class InMemoryGameRepository implements IGameRepository {
export class InMemoryGameRepository implements GameRepository {
private games: Game[];
private readonly logger: Logger;
@@ -59,7 +59,7 @@ export class InMemoryGameRepository implements IGameRepository {
}
}
export class InMemorySeasonRepository implements ISeasonRepository {
export class InMemorySeasonRepository implements SeasonRepository {
private seasons: Season[];
private readonly logger: Logger;
@@ -177,7 +177,7 @@ export class InMemorySeasonRepository implements ISeasonRepository {
}
export class InMemoryLeagueScoringConfigRepository
implements ILeagueScoringConfigRepository
implements LeagueScoringConfigRepository
{
private configs: LeagueScoringConfig[];
private readonly logger: Logger;
@@ -237,7 +237,7 @@ export class InMemoryLeagueScoringConfigRepository
}
export class InMemoryChampionshipStandingRepository
implements IChampionshipStandingRepository
implements ChampionshipStandingRepository
{
private standings: ChampionshipStanding[] = [];
private readonly logger: Logger;

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemorySeasonRepository } from './InMemorySeasonRepository';
import { Season } from '@core/racing/domain/entities/season/Season';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemorySeasonRepository', () => {
let repository: InMemorySeasonRepository;

View File

@@ -1,8 +1,8 @@
import { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository';
import { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import { Season } from '@core/racing/domain/entities/season/Season';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
export class InMemorySeasonRepository implements ISeasonRepository {
export class InMemorySeasonRepository implements SeasonRepository {
private seasons: Map<string, Season> = new Map(); // Key: seasonId
constructor(private readonly logger: Logger) {

View File

@@ -2,7 +2,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemorySeasonSponsorshipRepository } from './InMemorySeasonSponsorshipRepository';
import { SeasonSponsorship, type SponsorshipTier } from '@core/racing/domain/entities/season/SeasonSponsorship';
import { Money } from '@core/racing/domain/value-objects/Money';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemorySeasonSponsorshipRepository', () => {
let repository: InMemorySeasonSponsorshipRepository;

View File

@@ -5,10 +5,10 @@
*/
import type { SeasonSponsorship, SponsorshipTier } from '@core/racing/domain/entities/season/SeasonSponsorship';
import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository';
import type { Logger } from '@core/shared/application';
import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import type { Logger } from '@core/shared/domain';
export class InMemorySeasonSponsorshipRepository implements ISeasonSponsorshipRepository {
export class InMemorySeasonSponsorshipRepository implements SeasonSponsorshipRepository {
private sponsorships: Map<string, SeasonSponsorship> = new Map();
private readonly logger: Logger;

View File

@@ -2,7 +2,7 @@ import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemorySessionRepository } from './InMemorySessionRepository';
import { Session, SessionStatus } from '@core/racing/domain/entities/Session';
import { SessionType } from '@core/racing/domain/value-objects/SessionType';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemorySessionRepository', () => {
let repository: InMemorySessionRepository;

View File

@@ -1,11 +1,11 @@
/**
* In-memory implementation of ISessionRepository for development/testing.
*/
import type { ISessionRepository } from '@core/racing/domain/repositories/ISessionRepository';
import type { SessionRepository } from '@core/racing/domain/repositories/SessionRepository';
import type { Session } from '@core/racing/domain/entities/Session';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
export class InMemorySessionRepository implements ISessionRepository {
export class InMemorySessionRepository implements SessionRepository {
private sessions: Map<string, Session> = new Map();
private readonly logger: Logger;

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemorySponsorRepository } from './InMemorySponsorRepository';
import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemorySponsorRepository', () => {
let repository: InMemorySponsorRepository;

View File

@@ -1,8 +1,8 @@
import { ISponsorRepository } from '@core/racing/domain/repositories/ISponsorRepository';
import { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
export class InMemorySponsorRepository implements ISponsorRepository {
export class InMemorySponsorRepository implements SponsorRepository {
private sponsors: Map<string, Sponsor> = new Map();
private emailIndex: Map<string, string> = new Map(); // contactEmail -> sponsorId

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemorySponsorshipPricingRepository } from './InMemorySponsorshipPricingRepository';
import { SponsorshipPricing } from '@core/racing/domain/value-objects/SponsorshipPricing';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemorySponsorshipPricingRepository', () => {
let repository: InMemorySponsorshipPricingRepository;

View File

@@ -2,12 +2,12 @@
* InMemory implementation of ISponsorshipPricingRepository
*/
import type { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/ISponsorshipPricingRepository';
import type { SponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
import { SponsorshipPricing } from '@core/racing/domain/value-objects/SponsorshipPricing';
import type { SponsorableEntityType } from '@core/racing/domain/entities/SponsorshipRequest';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
export class InMemorySponsorshipPricingRepository implements ISponsorshipPricingRepository {
export class InMemorySponsorshipPricingRepository implements SponsorshipPricingRepository {
private pricings: Map<string, { entityType: SponsorableEntityType; entityId: string; pricing: SponsorshipPricing }> = new Map();
private readonly logger: Logger;

View File

@@ -3,7 +3,7 @@ import { InMemorySponsorshipRequestRepository } from './InMemorySponsorshipReque
import { SponsorshipRequest, SponsorableEntityType, SponsorshipRequestStatus } from '@core/racing/domain/entities/SponsorshipRequest';
import { Money } from '@core/racing/domain/value-objects/Money';
import { SponsorshipTier } from '@core/racing/domain/entities/season/SeasonSponsorship';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemorySponsorshipRequestRepository', () => {
let repository: InMemorySponsorshipRequestRepository;

View File

@@ -1,8 +1,8 @@
import { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/ISponsorshipRequestRepository';
import { SponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
import { SponsorshipRequest, SponsorableEntityType, SponsorshipRequestStatus } from '@core/racing/domain/entities/SponsorshipRequest';
import { Logger } from '@core/shared/application';
import { Logger } from '@core/shared/domain';
export class InMemorySponsorshipRequestRepository implements ISponsorshipRequestRepository {
export class InMemorySponsorshipRequestRepository implements SponsorshipRequestRepository {
private requests: Map<string, SponsorshipRequest> = new Map();
constructor(private readonly logger: Logger, initialRequests: SponsorshipRequest[] = []) {

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryStandingRepository } from './InMemoryStandingRepository';
import { Standing } from '@core/racing/domain/entities/Standing';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
/* eslint-disable @typescript-eslint/no-explicit-any */

View File

@@ -6,13 +6,13 @@
*/
import { Standing } from '@core/racing/domain/entities/Standing';
import type { IStandingRepository } from '@core/racing/domain/repositories/IStandingRepository';
import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository';
import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository';
import type { Logger } from '@core/shared/application';
import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import type { Logger } from '@core/shared/domain';
export class InMemoryStandingRepository implements IStandingRepository {
export class InMemoryStandingRepository implements StandingRepository {
private standings: Map<string, Standing>;
private resultRepository: IResultRepository | null;
private raceRepository: IRaceRepository | null;

View File

@@ -1,7 +1,7 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryTeamMembershipRepository } from './InMemoryTeamMembershipRepository';
import type { TeamMembership, TeamJoinRequest } from '@core/racing/domain/types/TeamMembership';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
/* eslint-disable @typescript-eslint/no-explicit-any */

View File

@@ -9,10 +9,10 @@ import type {
TeamMembership,
TeamJoinRequest,
} from '@core/racing/domain/types/TeamMembership';
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/ITeamMembershipRepository';
import type { Logger } from '@core/shared/application';
import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
import type { Logger } from '@core/shared/domain';
export class InMemoryTeamMembershipRepository implements ITeamMembershipRepository {
export class InMemoryTeamMembershipRepository implements TeamMembershipRepository {
private membershipsByTeam: Map<string, TeamMembership[]>;
private joinRequestsByTeam: Map<string, TeamJoinRequest[]>;
private readonly logger: Logger;

View File

@@ -1,6 +1,6 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryTeamRepository } from './InMemoryTeamRepository';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
import { Team } from '@core/racing/domain/entities/Team';
describe('InMemoryTeamRepository', () => {

View File

@@ -6,11 +6,11 @@
*/
import { Team } from '@core/racing/domain/entities/Team';
import type { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository';
import type { Logger } from '@core/shared/application';
import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository';
import type { Logger } from '@core/shared/domain';
import { MediaReference } from '@core/domain/media/MediaReference';
export class InMemoryTeamRepository implements ITeamRepository {
export class InMemoryTeamRepository implements TeamRepository {
private teams: Map<string, Team>;
private readonly logger: Logger;

View File

@@ -1,7 +1,7 @@
import type { Logger } from '@core/shared/application/Logger';
import type { ITeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/ITeamStatsRepository';
import type { Logger } from '@core/shared/domain/Logger';
import type { TeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/TeamStatsRepository';
export class InMemoryTeamStatsRepository implements ITeamStatsRepository {
export class InMemoryTeamStatsRepository implements TeamStatsRepository {
private readonly stats = new Map<string, TeamStats>();
constructor(private readonly logger: Logger) {}

View File

@@ -1,6 +1,6 @@
import { vi, describe, it, expect, beforeEach } from 'vitest';
import { InMemoryTrackRepository } from './InMemoryTrackRepository';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
import { Track } from '@core/racing/domain/entities/Track';
describe('InMemoryTrackRepository', () => {

View File

@@ -7,10 +7,10 @@
import { v4 as uuidv4 } from 'uuid';
import { Track, TrackCategory } from '@core/racing/domain/entities/Track';
import type { ITrackRepository } from '@core/racing/domain/repositories/ITrackRepository';
import type { Logger } from '@core/shared/application';
import type { TrackRepository } from '@core/racing/domain/repositories/TrackRepository';
import type { Logger } from '@core/shared/domain';
export class InMemoryTrackRepository implements ITrackRepository {
export class InMemoryTrackRepository implements TrackRepository {
private tracks: Map<string, Track>;
private readonly logger: Logger;

View File

@@ -4,7 +4,7 @@ import { Transaction, TransactionType } from '@core/racing/domain/entities/leagu
import { TransactionId } from '@core/racing/domain/entities/league-wallet/TransactionId';
import { LeagueWalletId } from '@core/racing/domain/entities/league-wallet/LeagueWalletId';
import { Money } from '@core/racing/domain/value-objects/Money';
import type { Logger } from '@core/shared/application';
import type { Logger } from '@core/shared/domain';
describe('InMemoryTransactionRepository', () => {
let repository: InMemoryTransactionRepository;

View File

@@ -5,10 +5,10 @@
*/
import type { Transaction, TransactionType } from '@core/racing/domain/entities/league-wallet/Transaction';
import type { ITransactionRepository } from '@core/racing/domain/repositories/ITransactionRepository';
import type { Logger } from '@core/shared/application';
import type { TransactionRepository } from '@core/racing/domain/repositories/TransactionRepository';
import type { Logger } from '@core/shared/domain';
export class InMemoryTransactionRepository implements ITransactionRepository {
export class InMemoryTransactionRepository implements TransactionRepository {
private transactions: Map<string, Transaction> = new Map();
private readonly logger: Logger;