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;

View File

@@ -5,10 +5,10 @@
* Stores URLs for media assets like avatars and logos.
*/
import type { IMediaRepository } from '@core/racing/domain/repositories/IMediaRepository';
import type { Logger } from '@core/shared/application';
import type { MediaRepository } from '@core/racing/domain/repositories/MediaRepository';
import type { Logger } from '@core/shared/domain';
export class InMemoryMediaRepository implements IMediaRepository {
export class InMemoryMediaRepository implements MediaRepository {
private driverAvatars = new Map<string, string>();
private teamLogos = new Map<string, string>();
private leagueLogos = new Map<string, string>();

View File

@@ -1,4 +1,4 @@
import type { DriverStats } from '@core/racing/application/use-cases/IDriverStatsUseCase';
import type { DriverStats } from '@core/racing/application/use-cases/DriverStatsUseCase';
import { DriverStatsOrmEntity } from '../entities/DriverStatsOrmEntity';
import {

View File

@@ -1,4 +1,4 @@
import type { TeamStats } from '@core/racing/domain/repositories/ITeamStatsRepository';
import type { TeamStats } from '@core/racing/domain/repositories/TeamStatsRepository';
import { TeamStatsOrmEntity } from '../entities/TeamStatsOrmEntity';
import {

View File

@@ -1,12 +1,12 @@
import type { Repository } from 'typeorm';
import type { IGameRepository } from '@core/racing/domain/repositories/IGameRepository';
import type { ILeagueWalletRepository } from '@core/racing/domain/repositories/ILeagueWalletRepository';
import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository';
import type { ISponsorRepository } from '@core/racing/domain/repositories/ISponsorRepository';
import type { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/ISponsorshipPricingRepository';
import type { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/ISponsorshipRequestRepository';
import type { ITransactionRepository } from '@core/racing/domain/repositories/ITransactionRepository';
import type { GameRepository } from '@core/racing/domain/repositories/GameRepository';
import type { LeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository';
import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import type { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
import type { SponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
import type { SponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
import type { TransactionRepository } from '@core/racing/domain/repositories/TransactionRepository';
import type { Game } from '@core/racing/domain/entities/Game';
import type { LeagueWallet } from '@core/racing/domain/entities/league-wallet/LeagueWallet';
@@ -35,7 +35,7 @@ import {
TransactionOrmMapper,
} from '../mappers/CommerceOrmMappers';
export class TypeOrmGameRepository implements IGameRepository {
export class TypeOrmGameRepository implements GameRepository {
constructor(
private readonly repo: Repository<GameOrmEntity>,
private readonly mapper: GameOrmMapper,
@@ -52,7 +52,7 @@ export class TypeOrmGameRepository implements IGameRepository {
}
}
export class TypeOrmLeagueWalletRepository implements ILeagueWalletRepository {
export class TypeOrmLeagueWalletRepository implements LeagueWalletRepository {
constructor(
private readonly repo: Repository<LeagueWalletOrmEntity>,
private readonly mapper: LeagueWalletOrmMapper,
@@ -88,7 +88,7 @@ export class TypeOrmLeagueWalletRepository implements ILeagueWalletRepository {
}
}
export class TypeOrmTransactionRepository implements ITransactionRepository {
export class TypeOrmTransactionRepository implements TransactionRepository {
constructor(
private readonly repo: Repository<TransactionOrmEntity>,
private readonly mapper: TransactionOrmMapper,
@@ -129,7 +129,7 @@ export class TypeOrmTransactionRepository implements ITransactionRepository {
}
}
export class TypeOrmSponsorRepository implements ISponsorRepository {
export class TypeOrmSponsorRepository implements SponsorRepository {
constructor(
private readonly repo: Repository<SponsorOrmEntity>,
private readonly mapper: SponsorOrmMapper,
@@ -170,7 +170,7 @@ export class TypeOrmSponsorRepository implements ISponsorRepository {
}
}
export class TypeOrmSponsorshipPricingRepository implements ISponsorshipPricingRepository {
export class TypeOrmSponsorshipPricingRepository implements SponsorshipPricingRepository {
constructor(
private readonly repo: Repository<SponsorshipPricingOrmEntity>,
private readonly mapper: SponsorshipPricingOrmMapper,
@@ -203,7 +203,7 @@ export class TypeOrmSponsorshipPricingRepository implements ISponsorshipPricingR
}
}
export class TypeOrmSponsorshipRequestRepository implements ISponsorshipRequestRepository {
export class TypeOrmSponsorshipRequestRepository implements SponsorshipRequestRepository {
constructor(
private readonly repo: Repository<SponsorshipRequestOrmEntity>,
private readonly mapper: SponsorshipRequestOrmMapper,
@@ -268,7 +268,7 @@ export class TypeOrmSponsorshipRequestRepository implements ISponsorshipRequestR
}
}
export class TypeOrmSeasonSponsorshipRepository implements ISeasonSponsorshipRepository {
export class TypeOrmSeasonSponsorshipRepository implements SeasonSponsorshipRepository {
constructor(
private readonly repo: Repository<SeasonSponsorshipOrmEntity>,
private readonly mapper: SeasonSponsorshipOrmMapper,

View File

@@ -1,14 +1,14 @@
import type { Repository } from 'typeorm';
import type { IPenaltyRepository } from '@core/racing/domain/repositories/IPenaltyRepository';
import type { IProtestRepository } from '@core/racing/domain/repositories/IProtestRepository';
import type { PenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository';
import type { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
import type { Penalty } from '@core/racing/domain/entities/penalty/Penalty';
import type { Protest } from '@core/racing/domain/entities/Protest';
import { PenaltyOrmEntity, ProtestOrmEntity } from '../entities/MissingRacingOrmEntities';
import { PenaltyOrmMapper, ProtestOrmMapper } from '../mappers/StewardingOrmMappers';
export class TypeOrmPenaltyRepository implements IPenaltyRepository {
export class TypeOrmPenaltyRepository implements PenaltyRepository {
constructor(
private readonly repo: Repository<PenaltyOrmEntity>,
private readonly mapper: PenaltyOrmMapper,
@@ -58,7 +58,7 @@ export class TypeOrmPenaltyRepository implements IPenaltyRepository {
}
}
export class TypeOrmProtestRepository implements IProtestRepository {
export class TypeOrmProtestRepository implements ProtestRepository {
constructor(
private readonly repo: Repository<ProtestOrmEntity>,
private readonly mapper: ProtestOrmMapper,

View File

@@ -1,14 +1,14 @@
import type { Repository } from 'typeorm';
import type { ITeamRepository } from '@core/racing/domain/repositories/ITeamRepository';
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/ITeamMembershipRepository';
import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository';
import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
import type { Team } from '@core/racing/domain/entities/Team';
import type { TeamJoinRequest, TeamMembership } from '@core/racing/domain/types/TeamMembership';
import { TeamJoinRequestOrmEntity, TeamMembershipOrmEntity, TeamOrmEntity } from '../entities/TeamOrmEntities';
import { TeamMembershipOrmMapper, TeamOrmMapper } from '../mappers/TeamOrmMappers';
export class TypeOrmTeamRepository implements ITeamRepository {
export class TypeOrmTeamRepository implements TeamRepository {
constructor(
private readonly repo: Repository<TeamOrmEntity>,
private readonly mapper: TeamOrmMapper,
@@ -59,7 +59,7 @@ export class TypeOrmTeamRepository implements ITeamRepository {
}
}
export class TypeOrmTeamMembershipRepository implements ITeamMembershipRepository {
export class TypeOrmTeamMembershipRepository implements TeamMembershipRepository {
constructor(
private readonly membershipRepo: Repository<TeamMembershipOrmEntity>,
private readonly joinRequestRepo: Repository<TeamJoinRequestOrmEntity>,

View File

@@ -1,12 +1,12 @@
import type { DataSource } from 'typeorm';
import type { IDriverRepository } from '@core/racing/domain/repositories/IDriverRepository';
import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
import type { Driver } from '@core/racing/domain/entities/Driver';
import { DriverOrmEntity } from '../entities/DriverOrmEntity';
import { DriverOrmMapper } from '../mappers/DriverOrmMapper';
export class TypeOrmDriverRepository implements IDriverRepository {
export class TypeOrmDriverRepository implements DriverRepository {
constructor(
private readonly dataSource: DataSource,
private readonly mapper: DriverOrmMapper,

View File

@@ -1,11 +1,11 @@
import type { IDriverStatsRepository } from '@core/racing/domain/repositories/IDriverStatsRepository';
import type { DriverStats } from '@core/racing/application/use-cases/IDriverStatsUseCase';
import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
import type { DriverStats } from '@core/racing/application/use-cases/DriverStatsUseCase';
import type { Repository } from 'typeorm';
import { DriverStatsOrmEntity } from '../entities/DriverStatsOrmEntity';
import { DriverStatsOrmMapper } from '../mappers/DriverStatsOrmMapper';
export class TypeOrmDriverStatsRepository implements IDriverStatsRepository {
export class TypeOrmDriverStatsRepository implements DriverStatsRepository {
constructor(
private readonly repo: Repository<DriverStatsOrmEntity>,
private readonly mapper: DriverStatsOrmMapper,

View File

@@ -1,13 +1,13 @@
import type { DataSource } from 'typeorm';
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/ILeagueMembershipRepository';
import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import type { LeagueMembership } from '@core/racing/domain/entities/LeagueMembership';
import { JoinRequest } from '@core/racing/domain/entities/JoinRequest';
import { LeagueMembershipOrmEntity } from '../entities/LeagueMembershipOrmEntity';
import { LeagueMembershipOrmMapper } from '../mappers/LeagueMembershipOrmMapper';
export class TypeOrmLeagueMembershipRepository implements ILeagueMembershipRepository {
export class TypeOrmLeagueMembershipRepository implements LeagueMembershipRepository {
constructor(
private readonly dataSource: DataSource,
private readonly mapper: LeagueMembershipOrmMapper,

View File

@@ -1,12 +1,12 @@
import type { DataSource } from 'typeorm';
import type { ILeagueRepository } from '@core/racing/domain/repositories/ILeagueRepository';
import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import { League } from '@core/racing/domain/entities/League';
import { LeagueOrmEntity } from '../entities/LeagueOrmEntity';
import { LeagueOrmMapper } from '../mappers/LeagueOrmMapper';
export class TypeOrmLeagueRepository implements ILeagueRepository {
export class TypeOrmLeagueRepository implements LeagueRepository {
constructor(
private readonly dataSource: DataSource,
private readonly mapper: LeagueOrmMapper,

View File

@@ -1,12 +1,12 @@
import type { DataSource } from 'typeorm';
import type { ILeagueScoringConfigRepository } from '@core/racing/domain/repositories/ILeagueScoringConfigRepository';
import type { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository';
import { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig';
import { LeagueScoringConfigOrmEntity } from '../entities/LeagueScoringConfigOrmEntity';
import { LeagueScoringConfigOrmMapper } from '../mappers/LeagueScoringConfigOrmMapper';
export class TypeOrmLeagueScoringConfigRepository implements ILeagueScoringConfigRepository {
export class TypeOrmLeagueScoringConfigRepository implements LeagueScoringConfigRepository {
constructor(
private readonly dataSource: DataSource,
private readonly mapper: LeagueScoringConfigOrmMapper,

View File

@@ -1,12 +1,12 @@
import type { DataSource } from 'typeorm';
import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/IRaceRegistrationRepository';
import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
import type { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration';
import { RaceRegistrationOrmEntity } from '../entities/RaceRegistrationOrmEntity';
import { RaceRegistrationOrmMapper } from '../mappers/RaceRegistrationOrmMapper';
export class TypeOrmRaceRegistrationRepository implements IRaceRegistrationRepository {
export class TypeOrmRaceRegistrationRepository implements RaceRegistrationRepository {
constructor(
private readonly dataSource: DataSource,
private readonly mapper: RaceRegistrationOrmMapper,

View File

@@ -1,12 +1,12 @@
import type { DataSource } from 'typeorm';
import type { IRaceRepository } from '@core/racing/domain/repositories/IRaceRepository';
import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import { Race, type RaceStatusValue } from '@core/racing/domain/entities/Race';
import { RaceOrmEntity } from '../entities/RaceOrmEntity';
import { RaceOrmMapper } from '../mappers/RaceOrmMapper';
export class TypeOrmRaceRepository implements IRaceRepository {
export class TypeOrmRaceRepository implements RaceRepository {
constructor(
private readonly dataSource: DataSource,
private readonly mapper: RaceOrmMapper,

View File

@@ -1,14 +1,14 @@
import type { DataSource } from 'typeorm';
import { In } from 'typeorm';
import type { IResultRepository } from '@core/racing/domain/repositories/IResultRepository';
import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository';
import type { Result } from '@core/racing/domain/entities/result/Result';
import { RaceOrmEntity } from '../entities/RaceOrmEntity';
import { ResultOrmEntity } from '../entities/ResultOrmEntity';
import { ResultOrmMapper } from '../mappers/ResultOrmMapper';
export class TypeOrmResultRepository implements IResultRepository {
export class TypeOrmResultRepository implements ResultRepository {
constructor(
private readonly dataSource: DataSource,
private readonly mapper: ResultOrmMapper,

View File

@@ -1,12 +1,12 @@
import type { DataSource } from 'typeorm';
import type { ISeasonRepository } from '@core/racing/domain/repositories/ISeasonRepository';
import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import { Season } from '@core/racing/domain/entities/season/Season';
import { SeasonOrmEntity } from '../entities/SeasonOrmEntity';
import { SeasonOrmMapper } from '../mappers/SeasonOrmMapper';
export class TypeOrmSeasonRepository implements ISeasonRepository {
export class TypeOrmSeasonRepository implements SeasonRepository {
constructor(
private readonly dataSource: DataSource,
private readonly mapper: SeasonOrmMapper,

View File

@@ -2,7 +2,7 @@ import type { DataSource } from 'typeorm';
import { In } from 'typeorm';
import { Standing } from '@core/racing/domain/entities/Standing';
import type { IStandingRepository } from '@core/racing/domain/repositories/IStandingRepository';
import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository';
import { LeagueOrmEntity } from '../entities/LeagueOrmEntity';
import { RaceOrmEntity } from '../entities/RaceOrmEntity';
@@ -12,7 +12,7 @@ import { LeagueOrmMapper } from '../mappers/LeagueOrmMapper';
import { ResultOrmMapper } from '../mappers/ResultOrmMapper';
import { StandingOrmMapper } from '../mappers/StandingOrmMapper';
export class TypeOrmStandingRepository implements IStandingRepository {
export class TypeOrmStandingRepository implements StandingRepository {
constructor(
private readonly dataSource: DataSource,
private readonly standingMapper: StandingOrmMapper,

View File

@@ -1,6 +1,6 @@
import type { DataSource } from 'typeorm';
import type { ITeamRatingEventRepository, FindByTeamIdOptions, PaginatedQueryOptions, PaginatedResult } from '@core/racing/domain/repositories/ITeamRatingEventRepository';
import type { TeamRatingEventRepository, FindByTeamIdOptions, PaginatedQueryOptions, PaginatedResult } from '@core/racing/domain/repositories/TeamRatingEventRepository';
import type { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent';
import type { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId';
@@ -13,7 +13,7 @@ import { TeamRatingEventOrmMapper } from '../mappers/TeamRatingEventOrmMapper';
* Persists team rating events in the ledger with efficient querying by teamId
* and ordering for snapshot computation.
*/
export class TypeOrmTeamRatingEventRepository implements ITeamRatingEventRepository {
export class TypeOrmTeamRatingEventRepository implements TeamRatingEventRepository {
constructor(private readonly dataSource: DataSource) {}
async save(event: TeamRatingEvent): Promise<TeamRatingEvent> {

View File

@@ -1,6 +1,6 @@
import type { DataSource } from 'typeorm';
import type { ITeamRatingRepository } from '@core/racing/domain/repositories/ITeamRatingRepository';
import type { TeamRatingRepository } from '@core/racing/domain/repositories/TeamRatingRepository';
import type { TeamRatingSnapshot } from '@core/racing/domain/services/TeamRatingSnapshotCalculator';
import { TeamRatingOrmEntity } from '../entities/TeamRatingOrmEntity';
@@ -11,7 +11,7 @@ import { TeamRatingOrmMapper } from '../mappers/TeamRatingOrmMapper';
*
* Persists and retrieves TeamRating snapshots for fast reads.
*/
export class TypeOrmTeamRatingRepository implements ITeamRatingRepository {
export class TypeOrmTeamRatingRepository implements TeamRatingRepository {
constructor(private readonly dataSource: DataSource) {}
async findByTeamId(teamId: string): Promise<TeamRatingSnapshot | null> {

View File

@@ -1,10 +1,10 @@
import type { ITeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/ITeamStatsRepository';
import type { TeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/TeamStatsRepository';
import type { Repository } from 'typeorm';
import { TeamStatsOrmEntity } from '../entities/TeamStatsOrmEntity';
import { TeamStatsOrmMapper } from '../mappers/TeamStatsOrmMapper';
export class TypeOrmTeamStatsRepository implements ITeamStatsRepository {
export class TypeOrmTeamStatsRepository implements TeamStatsRepository {
constructor(
private readonly repo: Repository<TeamStatsOrmEntity>,
private readonly mapper: TeamStatsOrmMapper,