website refactor
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { DashboardStatsResult } from '../use-cases/GetDashboardStatsUseCase';
|
import type { DashboardStatsResult } from '../use-cases/GetDashboardStatsUseCase';
|
||||||
|
|
||||||
export interface DashboardStatsResponse {
|
export interface DashboardStatsResponse {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { ListUsersResult } from '@core/admin/application/use-cases/ListUsersUseCase';
|
import { ListUsersResult } from '@core/admin/application/use-cases/ListUsersUseCase';
|
||||||
import type { AdminUser } from '@core/admin/domain/entities/AdminUser';
|
import type { AdminUser } from '@core/admin/domain/entities/AdminUser';
|
||||||
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { UserListResponseDto, UserResponseDto } from '../dtos/UserResponseDto';
|
import { UserListResponseDto, UserResponseDto } from '../dtos/UserResponseDto';
|
||||||
|
|
||||||
export type ListUsersViewModel = UserListResponseDto;
|
export type ListUsersViewModel = UserListResponseDto;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
|
import type { AdminUser } from '@core/admin/domain/entities/AdminUser';
|
||||||
import type { AdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository';
|
import type { AdminUserRepository } from '@core/admin/domain/repositories/AdminUserRepository';
|
||||||
import { AuthorizationService } from '@core/admin/domain/services/AuthorizationService';
|
import { AuthorizationService } from '@core/admin/domain/services/AuthorizationService';
|
||||||
import { UserId } from '@core/admin/domain/value-objects/UserId';
|
import { UserId } from '@core/admin/domain/value-objects/UserId';
|
||||||
|
import type { UserRole } from '@core/admin/domain/value-objects/UserRole';
|
||||||
import { Result } from '@core/shared/domain/Result';
|
import { Result } from '@core/shared/domain/Result';
|
||||||
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
|
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
|
||||||
import type { AdminUser } from '@core/admin/domain/entities/AdminUser';
|
|
||||||
import type { UserRole } from '@core/admin/domain/value-objects/UserRole';
|
|
||||||
|
|
||||||
export interface DashboardStatsResult {
|
export interface DashboardStatsResult {
|
||||||
totalUsers: number;
|
totalUsers: number;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import type { PageViewRepository } from '@core/analytics/application/repositories/PageViewRepository';
|
import type { PageViewRepository } from '@core/analytics/application/repositories/PageViewRepository';
|
||||||
import type { EngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository';
|
import type { EngagementRepository } from '@core/analytics/domain/repositories/EngagementRepository';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Provider } from '@nestjs/common';
|
import { Provider } from '@nestjs/common';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import type { AuthRepository } from '@core/identity/domain/repositories/AuthRepo
|
|||||||
import type { CompanyRepository } from '@core/identity/domain/repositories/CompanyRepository';
|
import type { CompanyRepository } from '@core/identity/domain/repositories/CompanyRepository';
|
||||||
import type { MagicLinkRepository } from '@core/identity/domain/repositories/MagicLinkRepository';
|
import type { MagicLinkRepository } from '@core/identity/domain/repositories/MagicLinkRepository';
|
||||||
import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
|
import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AUTH_REPOSITORY_TOKEN,
|
AUTH_REPOSITORY_TOKEN,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Inject } from '@nestjs/common';
|
import { Inject } from '@nestjs/common';
|
||||||
|
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ForgotPasswordUseCase,
|
ForgotPasswordUseCase,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { LoginResult } from '@core/identity/application/use-cases/LoginUseCase';
|
import type { LoginResult } from '@core/identity/application/use-cases/LoginUseCase';
|
||||||
import type { SignupSponsorResult } from '@core/identity/application/use-cases/SignupSponsorUseCase';
|
import type { SignupSponsorResult } from '@core/identity/application/use-cases/SignupSponsorUseCase';
|
||||||
import type { SignupResult } from '@core/identity/application/use-cases/SignupUseCase';
|
import type { SignupResult } from '@core/identity/application/use-cases/SignupUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { AuthenticatedUserDTO } from '../dtos/AuthDto';
|
import { AuthenticatedUserDTO } from '../dtos/AuthDto';
|
||||||
|
|
||||||
type AuthSessionResult = LoginResult | SignupResult | SignupSponsorResult;
|
type AuthSessionResult = LoginResult | SignupResult | SignupSponsorResult;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { LogoutResult } from '@core/identity/application/use-cases/LogoutUseCase';
|
import type { LogoutResult } from '@core/identity/application/use-cases/LogoutUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
|
|
||||||
export interface CommandResultDTO {
|
export interface CommandResultDTO {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { ForgotPasswordResult } from '@core/identity/application/use-cases/ForgotPasswordUseCase';
|
import { ForgotPasswordResult } from '@core/identity/application/use-cases/ForgotPasswordUseCase';
|
||||||
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { ResetPasswordResult } from '@core/identity/application/use-cases/ResetPasswordUseCase';
|
import { ResetPasswordResult } from '@core/identity/application/use-cases/ResetPasswordUseCase';
|
||||||
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Inject, Module, OnModuleInit } from '@nestjs/common';
|
import { Inject, Module, OnModuleInit } from '@nestjs/common';
|
||||||
import type { EnsureInitialData } from '../../../../../adapters/bootstrap/EnsureInitialData';
|
import type { EnsureInitialData } from '../../../../../adapters/bootstrap/EnsureInitialData';
|
||||||
import { SeedDemoUsers } from '../../../../../adapters/bootstrap/SeedDemoUsers';
|
import { SeedDemoUsers } from '../../../../../adapters/bootstrap/SeedDemoUsers';
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import {
|
|||||||
type AchievementRepository,
|
type AchievementRepository,
|
||||||
} from '@core/identity/application/use-cases/achievement/CreateAchievementUseCase';
|
} from '@core/identity/application/use-cases/achievement/CreateAchievementUseCase';
|
||||||
import type { UserRepository } from '@core/identity/domain/repositories/UserRepository';
|
import type { UserRepository } from '@core/identity/domain/repositories/UserRepository';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Provider } from '@nestjs/common';
|
import { Provider } from '@nestjs/common';
|
||||||
import { EnsureInitialData } from '../../../../../adapters/bootstrap/EnsureInitialData';
|
import { EnsureInitialData } from '../../../../../adapters/bootstrap/EnsureInitialData';
|
||||||
import { SeedDemoUsers } from '../../../../../adapters/bootstrap/SeedDemoUsers';
|
import { SeedDemoUsers } from '../../../../../adapters/bootstrap/SeedDemoUsers';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { RaceRegistrationRepository } from '@core/racing/domain/repositories/Rac
|
|||||||
import { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
import { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
||||||
import { ResultRepository } from '@core/racing/domain/repositories/ResultRepository';
|
import { ResultRepository } from '@core/racing/domain/repositories/ResultRepository';
|
||||||
import { StandingRepository } from '@core/racing/domain/repositories/StandingRepository';
|
import { StandingRepository } from '@core/racing/domain/repositories/StandingRepository';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { FeedRepository } from '@core/social/domain/repositories/FeedRepository';
|
import { FeedRepository } from '@core/social/domain/repositories/FeedRepository';
|
||||||
import { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
|
import { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { DashboardOverviewDTO } from './dtos/DashboardOverviewDTO';
|
|||||||
import { DashboardOverviewPresenter } from './presenters/DashboardOverviewPresenter';
|
import { DashboardOverviewPresenter } from './presenters/DashboardOverviewPresenter';
|
||||||
|
|
||||||
// Core imports
|
// Core imports
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
// Tokens (standalone to avoid circular imports)
|
// Tokens (standalone to avoid circular imports)
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import { DriverStatsPresenter } from './presenters/DriverStatsPresenter';
|
|||||||
import { GetDriverLiveriesPresenter } from './presenters/GetDriverLiveriesPresenter';
|
import { GetDriverLiveriesPresenter } from './presenters/GetDriverLiveriesPresenter';
|
||||||
|
|
||||||
// Tokens
|
// Tokens
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import {
|
import {
|
||||||
COMPLETE_DRIVER_ONBOARDING_USE_CASE_TOKEN,
|
COMPLETE_DRIVER_ONBOARDING_USE_CASE_TOKEN,
|
||||||
GET_DRIVER_LIVERIES_USE_CASE_TOKEN,
|
GET_DRIVER_LIVERIES_USE_CASE_TOKEN,
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import type { RaceRepository } from '@core/racing/domain/repositories/RaceReposi
|
|||||||
import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
|
import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
|
||||||
import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
|
import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
|
||||||
import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository';
|
import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
// Import concrete in-memory implementations
|
// Import concrete in-memory implementations
|
||||||
import { getLeagueScoringPresetById, listLeagueScoringPresets } from '@adapters/bootstrap/LeagueScoringPresets';
|
import { getLeagueScoringPresetById, listLeagueScoringPresets } from '@adapters/bootstrap/LeagueScoringPresets';
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ import type { LeagueScoringConfigViewModel } from './presenters/LeagueScoringCon
|
|||||||
import type { LeagueScoringPresetsViewModel } from './presenters/LeagueScoringPresetsPresenter';
|
import type { LeagueScoringPresetsViewModel } from './presenters/LeagueScoringPresetsPresenter';
|
||||||
|
|
||||||
// Core imports
|
// Core imports
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
// Use cases
|
// Use cases
|
||||||
import { ApproveLeagueJoinRequestUseCase } from '@core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase';
|
import { ApproveLeagueJoinRequestUseCase } from '@core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { MediaReference } from '@core/domain/media/MediaReference';
|
import { MediaReference } from '@core/domain/media/MediaReference';
|
||||||
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
|
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
|
||||||
import type { GetAllLeaguesWithCapacityAndScoringResult } from '@core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase';
|
import type { GetAllLeaguesWithCapacityAndScoringResult } from '@core/racing/application/use-cases/GetAllLeaguesWithCapacityAndScoringUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type {
|
import type {
|
||||||
AllLeaguesWithCapacityAndScoringDTO,
|
AllLeaguesWithCapacityAndScoringDTO,
|
||||||
LeagueWithCapacityAndScoringDTO,
|
LeagueWithCapacityAndScoringDTO,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetAllLeaguesWithCapacityResult } from '@core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase';
|
import type { GetAllLeaguesWithCapacityResult } from '@core/racing/application/use-cases/GetAllLeaguesWithCapacityUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { AllLeaguesWithCapacityDTO, LeagueWithCapacityDTO } from '../dtos/AllLeaguesWithCapacityDTO';
|
import { AllLeaguesWithCapacityDTO, LeagueWithCapacityDTO } from '../dtos/AllLeaguesWithCapacityDTO';
|
||||||
|
|
||||||
export class AllLeaguesWithCapacityPresenter implements UseCaseOutputPort<GetAllLeaguesWithCapacityResult> {
|
export class AllLeaguesWithCapacityPresenter implements UseCaseOutputPort<GetAllLeaguesWithCapacityResult> {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
import { ApproveLeagueJoinRequestResult } from '@core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase';
|
import { ApproveLeagueJoinRequestResult } from '@core/racing/application/use-cases/ApproveLeagueJoinRequestUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { ApproveLeagueJoinRequestDTO } from '../dtos/ApproveLeagueJoinRequestDTO';
|
import type { ApproveLeagueJoinRequestDTO } from '../dtos/ApproveLeagueJoinRequestDTO';
|
||||||
|
|
||||||
export class ApproveLeagueJoinRequestPresenter implements UseCaseOutputPort<ApproveLeagueJoinRequestResult> {
|
export class ApproveLeagueJoinRequestPresenter implements UseCaseOutputPort<ApproveLeagueJoinRequestResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetLeagueAdminPermissionsResult } from '@core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase';
|
import type { GetLeagueAdminPermissionsResult } from '@core/racing/application/use-cases/GetLeagueAdminPermissionsUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { LeagueAdminPermissionsDTO } from '../dtos/LeagueAdminPermissionsDTO';
|
import { LeagueAdminPermissionsDTO } from '../dtos/LeagueAdminPermissionsDTO';
|
||||||
|
|
||||||
export class GetLeagueAdminPermissionsPresenter implements UseCaseOutputPort<GetLeagueAdminPermissionsResult> {
|
export class GetLeagueAdminPermissionsPresenter implements UseCaseOutputPort<GetLeagueAdminPermissionsResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { GetLeagueMembershipsResult } from '@core/racing/application/use-cases/GetLeagueMembershipsUseCase';
|
import { GetLeagueMembershipsResult } from '@core/racing/application/use-cases/GetLeagueMembershipsUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { LeagueMemberDTO } from '../dtos/LeagueMemberDTO';
|
import type { LeagueMemberDTO } from '../dtos/LeagueMemberDTO';
|
||||||
import { LeagueMembershipsDTO } from '../dtos/LeagueMembershipsDTO';
|
import { LeagueMembershipsDTO } from '../dtos/LeagueMembershipsDTO';
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetLeagueOwnerSummaryResult } from '@core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase';
|
import type { GetLeagueOwnerSummaryResult } from '@core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { LeagueOwnerSummaryDTO } from '../dtos/LeagueOwnerSummaryDTO';
|
import { LeagueOwnerSummaryDTO } from '../dtos/LeagueOwnerSummaryDTO';
|
||||||
|
|
||||||
export class GetLeagueOwnerSummaryPresenter implements UseCaseOutputPort<GetLeagueOwnerSummaryResult> {
|
export class GetLeagueOwnerSummaryPresenter implements UseCaseOutputPort<GetLeagueOwnerSummaryResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetLeagueWalletResult } from '@core/racing/application/use-cases/GetLeagueWalletUseCase';
|
import type { GetLeagueWalletResult } from '@core/racing/application/use-cases/GetLeagueWalletUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { GetLeagueWalletOutputDTO, WalletTransactionDTO } from '../dtos/GetLeagueWalletOutputDTO';
|
import { GetLeagueWalletOutputDTO, WalletTransactionDTO } from '../dtos/GetLeagueWalletOutputDTO';
|
||||||
|
|
||||||
export class GetLeagueWalletPresenter implements UseCaseOutputPort<GetLeagueWalletResult> {
|
export class GetLeagueWalletPresenter implements UseCaseOutputPort<GetLeagueWalletResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetSeasonSponsorshipsResult } from '@core/racing/application/use-cases/GetSeasonSponsorshipsUseCase';
|
import type { GetSeasonSponsorshipsResult } from '@core/racing/application/use-cases/GetSeasonSponsorshipsUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { SponsorshipDetailDTO } from '../../sponsor/dtos/SponsorshipDetailDTO';
|
import { SponsorshipDetailDTO } from '../../sponsor/dtos/SponsorshipDetailDTO';
|
||||||
import { GetSeasonSponsorshipsOutputDTO } from '../dtos/GetSeasonSponsorshipsOutputDTO';
|
import { GetSeasonSponsorshipsOutputDTO } from '../dtos/GetSeasonSponsorshipsOutputDTO';
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { JoinLeagueResult } from '@core/racing/application/use-cases/JoinLeagueUseCase';
|
import type { JoinLeagueResult } from '@core/racing/application/use-cases/JoinLeagueUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { JoinLeagueOutputDTO } from '../dtos/JoinLeagueOutputDTO';
|
import type { JoinLeagueOutputDTO } from '../dtos/JoinLeagueOutputDTO';
|
||||||
|
|
||||||
export class JoinLeaguePresenter implements UseCaseOutputPort<JoinLeagueResult> {
|
export class JoinLeaguePresenter implements UseCaseOutputPort<JoinLeagueResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetLeagueFullConfigResult } from '@core/racing/application/use-cases/GetLeagueFullConfigUseCase';
|
import type { GetLeagueFullConfigResult } from '@core/racing/application/use-cases/GetLeagueFullConfigUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { LeagueConfigFormModelDTO } from '../dtos/LeagueConfigFormModelDTO';
|
import { LeagueConfigFormModelDTO } from '../dtos/LeagueConfigFormModelDTO';
|
||||||
|
|
||||||
export class LeagueConfigPresenter implements UseCaseOutputPort<GetLeagueFullConfigResult> {
|
export class LeagueConfigPresenter implements UseCaseOutputPort<GetLeagueFullConfigResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { GetLeagueJoinRequestsResult } from '@core/racing/application/use-cases/GetLeagueJoinRequestsUseCase';
|
import { GetLeagueJoinRequestsResult } from '@core/racing/application/use-cases/GetLeagueJoinRequestsUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { LeagueJoinRequestWithDriverDTO } from '../dtos/LeagueJoinRequestWithDriverDTO';
|
import { LeagueJoinRequestWithDriverDTO } from '../dtos/LeagueJoinRequestWithDriverDTO';
|
||||||
|
|
||||||
export interface LeagueJoinRequestsViewModel {
|
export interface LeagueJoinRequestsViewModel {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { GetLeagueOwnerSummaryResult } from '@core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase';
|
import { GetLeagueOwnerSummaryResult } from '@core/racing/application/use-cases/GetLeagueOwnerSummaryUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { LeagueOwnerSummaryDTO } from '../dtos/LeagueOwnerSummaryDTO';
|
import { LeagueOwnerSummaryDTO } from '../dtos/LeagueOwnerSummaryDTO';
|
||||||
|
|
||||||
export class LeagueOwnerSummaryPresenter implements UseCaseOutputPort<GetLeagueOwnerSummaryResult> {
|
export class LeagueOwnerSummaryPresenter implements UseCaseOutputPort<GetLeagueOwnerSummaryResult> {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import type { GetLeagueRosterJoinRequestsResult } from '@core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase';
|
import type { GetLeagueRosterJoinRequestsResult } from '@core/racing/application/use-cases/GetLeagueRosterJoinRequestsUseCase';
|
||||||
import type { GetLeagueRosterMembersResult } from '@core/racing/application/use-cases/GetLeagueRosterMembersUseCase';
|
import type { GetLeagueRosterMembersResult } from '@core/racing/application/use-cases/GetLeagueRosterMembersUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
import type { DriverDTO } from '../../driver/dtos/DriverDTO';
|
import type { DriverDTO } from '../../driver/dtos/DriverDTO';
|
||||||
import type { LeagueRosterJoinRequestDTO } from '../dtos/LeagueRosterJoinRequestDTO';
|
import type { LeagueRosterJoinRequestDTO } from '../dtos/LeagueRosterJoinRequestDTO';
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { GetLeagueScheduleResult } from '@core/racing/application/use-cases/GetLeagueScheduleUseCase';
|
import { GetLeagueScheduleResult } from '@core/racing/application/use-cases/GetLeagueScheduleUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { RaceDTO } from '../../race/dtos/RaceDTO';
|
import { RaceDTO } from '../../race/dtos/RaceDTO';
|
||||||
import { LeagueScheduleDTO } from '../dtos/LeagueScheduleDTO';
|
import { LeagueScheduleDTO } from '../dtos/LeagueScheduleDTO';
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import type { GetLeagueScoringConfigResult } from '@core/racing/application/use-cases/GetLeagueScoringConfigUseCase';
|
import type { GetLeagueScoringConfigResult } from '@core/racing/application/use-cases/GetLeagueScoringConfigUseCase';
|
||||||
import type { BonusRule } from '@core/racing/domain/types/BonusRule';
|
import type { BonusRule } from '@core/racing/domain/types/BonusRule';
|
||||||
import type { ChampionshipConfig } from '@core/racing/domain/types/ChampionshipConfig';
|
import type { ChampionshipConfig } from '@core/racing/domain/types/ChampionshipConfig';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
|
|
||||||
export interface LeagueScoringChampionshipViewModel {
|
export interface LeagueScoringChampionshipViewModel {
|
||||||
id: string;
|
id: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { ListLeagueScoringPresetsResult } from '@core/racing/application/use-cases/ListLeagueScoringPresetsUseCase';
|
import type { ListLeagueScoringPresetsResult } from '@core/racing/application/use-cases/ListLeagueScoringPresetsUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { LeagueScoringPresetsDTO } from '../dtos/LeagueScoringPresetsDTO';
|
import type { LeagueScoringPresetsDTO } from '../dtos/LeagueScoringPresetsDTO';
|
||||||
|
|
||||||
export type LeagueScoringPresetsViewModel = LeagueScoringPresetsDTO;
|
export type LeagueScoringPresetsViewModel = LeagueScoringPresetsDTO;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
|
|
||||||
import type {
|
import type {
|
||||||
CreateLeagueScheduleRaceOutputDTO,
|
CreateLeagueScheduleRaceOutputDTO,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { RejectLeagueJoinRequestResult } from '@core/racing/application/use-cases/RejectLeagueJoinRequestUseCase';
|
import type { RejectLeagueJoinRequestResult } from '@core/racing/application/use-cases/RejectLeagueJoinRequestUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { RejectJoinRequestOutputDTO } from '../dtos/RejectJoinRequestOutputDTO';
|
import type { RejectJoinRequestOutputDTO } from '../dtos/RejectJoinRequestOutputDTO';
|
||||||
|
|
||||||
export class RejectLeagueJoinRequestPresenter implements UseCaseOutputPort<RejectLeagueJoinRequestResult> {
|
export class RejectLeagueJoinRequestPresenter implements UseCaseOutputPort<RejectLeagueJoinRequestResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { RemoveLeagueMemberResult } from '@core/racing/application/use-cases/RemoveLeagueMemberUseCase';
|
import type { RemoveLeagueMemberResult } from '@core/racing/application/use-cases/RemoveLeagueMemberUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { RemoveLeagueMemberOutputDTO } from '../dtos/RemoveLeagueMemberOutputDTO';
|
import type { RemoveLeagueMemberOutputDTO } from '../dtos/RemoveLeagueMemberOutputDTO';
|
||||||
|
|
||||||
export class RemoveLeagueMemberPresenter implements UseCaseOutputPort<RemoveLeagueMemberResult> {
|
export class RemoveLeagueMemberPresenter implements UseCaseOutputPort<RemoveLeagueMemberResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { TransferLeagueOwnershipResult } from '@core/racing/application/use-cases/TransferLeagueOwnershipUseCase';
|
import type { TransferLeagueOwnershipResult } from '@core/racing/application/use-cases/TransferLeagueOwnershipUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { TransferLeagueOwnershipOutputDTO } from '../dtos/TransferLeagueOwnershipOutputDTO';
|
import type { TransferLeagueOwnershipOutputDTO } from '../dtos/TransferLeagueOwnershipOutputDTO';
|
||||||
|
|
||||||
export class TransferLeagueOwnershipPresenter implements UseCaseOutputPort<TransferLeagueOwnershipResult> {
|
export class TransferLeagueOwnershipPresenter implements UseCaseOutputPort<TransferLeagueOwnershipResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { UpdateLeagueMemberRoleResult } from '@core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase';
|
import type { UpdateLeagueMemberRoleResult } from '@core/racing/application/use-cases/UpdateLeagueMemberRoleUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { UpdateLeagueMemberRoleOutputDTO } from '../dtos/UpdateLeagueMemberRoleOutputDTO';
|
import type { UpdateLeagueMemberRoleOutputDTO } from '../dtos/UpdateLeagueMemberRoleOutputDTO';
|
||||||
|
|
||||||
export class UpdateLeagueMemberRolePresenter implements UseCaseOutputPort<UpdateLeagueMemberRoleResult> {
|
export class UpdateLeagueMemberRolePresenter implements UseCaseOutputPort<UpdateLeagueMemberRoleResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { WithdrawFromLeagueWalletResult } from '@core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase';
|
import type { WithdrawFromLeagueWalletResult } from '@core/racing/application/use-cases/WithdrawFromLeagueWalletUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { WithdrawFromLeagueWalletOutputDTO } from '../dtos/WithdrawFromLeagueWalletOutputDTO';
|
import { WithdrawFromLeagueWalletOutputDTO } from '../dtos/WithdrawFromLeagueWalletOutputDTO';
|
||||||
|
|
||||||
export class WithdrawFromLeagueWalletPresenter implements UseCaseOutputPort<WithdrawFromLeagueWalletResult> {
|
export class WithdrawFromLeagueWalletPresenter implements UseCaseOutputPort<WithdrawFromLeagueWalletResult> {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { MediaReference } from '@core/domain/media/MediaReference';
|
import { MediaReference } from '@core/domain/media/MediaReference';
|
||||||
import { MediaGenerationService } from '@core/media/domain/services/MediaGenerationService';
|
import { MediaGenerationService } from '@core/media/domain/services/MediaGenerationService';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Body, Controller, Delete, Get, HttpStatus, Inject, Param, Post, Put, Res, UploadedFile, UseInterceptors } from '@nestjs/common';
|
import { Body, Controller, Delete, Get, HttpStatus, Inject, Param, Post, Put, Res, UploadedFile, UseInterceptors } from '@nestjs/common';
|
||||||
import { FileInterceptor } from '@nestjs/platform-express';
|
import { FileInterceptor } from '@nestjs/platform-express';
|
||||||
import { ApiConsumes, ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger';
|
import { ApiConsumes, ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger';
|
||||||
|
|||||||
@@ -4,11 +4,11 @@ import { Provider } from '@nestjs/common';
|
|||||||
import { AvatarGenerationPort } from '@core/media/application/ports/AvatarGenerationPort';
|
import { AvatarGenerationPort } from '@core/media/application/ports/AvatarGenerationPort';
|
||||||
import { FaceValidationPort } from '@core/media/application/ports/FaceValidationPort';
|
import { FaceValidationPort } from '@core/media/application/ports/FaceValidationPort';
|
||||||
import { MediaStoragePort } from '@core/media/application/ports/MediaStoragePort';
|
import { MediaStoragePort } from '@core/media/application/ports/MediaStoragePort';
|
||||||
import { IAvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository';
|
import { AvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository';
|
||||||
import { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository';
|
import { AvatarRepository } from '@core/media/domain/repositories/AvatarRepository';
|
||||||
import { IMediaRepository } from '@core/media/domain/repositories/MediaRepository';
|
import { MediaRepository } from '@core/media/domain/repositories/MediaRepository';
|
||||||
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
|
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
// Import use cases
|
// Import use cases
|
||||||
import { DeleteMediaUseCase } from '@core/media/application/use-cases/DeleteMediaUseCase';
|
import { DeleteMediaUseCase } from '@core/media/application/use-cases/DeleteMediaUseCase';
|
||||||
@@ -78,10 +78,10 @@ class MockAvatarGenerationAdapter implements AvatarGenerationPort {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class MockLogger implements Logger {
|
class MockLogger implements Logger {
|
||||||
debug(): void {}
|
debug(message: string, context?: unknown): void {}
|
||||||
info(): void {}
|
info(message: string, context?: unknown): void {}
|
||||||
warn(): void {}
|
warn(message: string, context?: unknown): void {}
|
||||||
error(): void {}
|
error(message: string, error?: Error, context?: unknown): void {}
|
||||||
}
|
}
|
||||||
|
|
||||||
import { MediaResolverAdapter } from '@adapters/media/MediaResolverAdapter';
|
import { MediaResolverAdapter } from '@adapters/media/MediaResolverAdapter';
|
||||||
@@ -128,37 +128,37 @@ export const MediaProviders: Provider[] = createLoggedProviders([
|
|||||||
// Use cases - simplified without output ports
|
// Use cases - simplified without output ports
|
||||||
{
|
{
|
||||||
provide: REQUEST_AVATAR_GENERATION_USE_CASE_TOKEN,
|
provide: REQUEST_AVATAR_GENERATION_USE_CASE_TOKEN,
|
||||||
useFactory: (avatarRepo: IAvatarGenerationRepository, faceValidation: FaceValidationPort, avatarGeneration: AvatarGenerationPort, logger: Logger) =>
|
useFactory: (avatarRepo: AvatarGenerationRepository, faceValidation: FaceValidationPort, avatarGeneration: AvatarGenerationPort, logger: Logger) =>
|
||||||
new RequestAvatarGenerationUseCase(avatarRepo, faceValidation, avatarGeneration, logger),
|
new RequestAvatarGenerationUseCase(avatarRepo, faceValidation, avatarGeneration, logger),
|
||||||
inject: [AVATAR_GENERATION_REPOSITORY_TOKEN, FACE_VALIDATION_PORT_TOKEN, AVATAR_GENERATION_PORT_TOKEN, LOGGER_TOKEN],
|
inject: [AVATAR_GENERATION_REPOSITORY_TOKEN, FACE_VALIDATION_PORT_TOKEN, AVATAR_GENERATION_PORT_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: UPLOAD_MEDIA_USE_CASE_TOKEN,
|
provide: UPLOAD_MEDIA_USE_CASE_TOKEN,
|
||||||
useFactory: (mediaRepo: IMediaRepository, mediaStorage: MediaStoragePort, logger: Logger) =>
|
useFactory: (mediaRepo: MediaRepository, mediaStorage: MediaStoragePort, logger: Logger) =>
|
||||||
new UploadMediaUseCase(mediaRepo, mediaStorage, logger),
|
new UploadMediaUseCase(mediaRepo, mediaStorage, logger),
|
||||||
inject: [MEDIA_REPOSITORY_TOKEN, MEDIA_STORAGE_PORT_TOKEN, LOGGER_TOKEN],
|
inject: [MEDIA_REPOSITORY_TOKEN, MEDIA_STORAGE_PORT_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_MEDIA_USE_CASE_TOKEN,
|
provide: GET_MEDIA_USE_CASE_TOKEN,
|
||||||
useFactory: (mediaRepo: IMediaRepository, logger: Logger) =>
|
useFactory: (mediaRepo: MediaRepository, logger: Logger) =>
|
||||||
new GetMediaUseCase(mediaRepo, logger),
|
new GetMediaUseCase(mediaRepo, logger),
|
||||||
inject: [MEDIA_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [MEDIA_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: DELETE_MEDIA_USE_CASE_TOKEN,
|
provide: DELETE_MEDIA_USE_CASE_TOKEN,
|
||||||
useFactory: (mediaRepo: IMediaRepository, mediaStorage: MediaStoragePort, logger: Logger) =>
|
useFactory: (mediaRepo: MediaRepository, mediaStorage: MediaStoragePort, logger: Logger) =>
|
||||||
new DeleteMediaUseCase(mediaRepo, mediaStorage, logger),
|
new DeleteMediaUseCase(mediaRepo, mediaStorage, logger),
|
||||||
inject: [MEDIA_REPOSITORY_TOKEN, MEDIA_STORAGE_PORT_TOKEN, LOGGER_TOKEN],
|
inject: [MEDIA_REPOSITORY_TOKEN, MEDIA_STORAGE_PORT_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_AVATAR_USE_CASE_TOKEN,
|
provide: GET_AVATAR_USE_CASE_TOKEN,
|
||||||
useFactory: (avatarRepo: IAvatarRepository, logger: Logger) =>
|
useFactory: (avatarRepo: AvatarRepository, logger: Logger) =>
|
||||||
new GetAvatarUseCase(avatarRepo, logger),
|
new GetAvatarUseCase(avatarRepo, logger),
|
||||||
inject: [AVATAR_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [AVATAR_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: UPDATE_AVATAR_USE_CASE_TOKEN,
|
provide: UPDATE_AVATAR_USE_CASE_TOKEN,
|
||||||
useFactory: (avatarRepo: IAvatarRepository, logger: Logger) =>
|
useFactory: (avatarRepo: AvatarRepository, logger: Logger) =>
|
||||||
new UpdateAvatarUseCase(avatarRepo, logger),
|
new UpdateAvatarUseCase(avatarRepo, logger),
|
||||||
inject: [AVATAR_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [AVATAR_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ import { RequestAvatarGenerationPresenter } from './presenters/RequestAvatarGene
|
|||||||
import { UpdateAvatarPresenter } from './presenters/UpdateAvatarPresenter';
|
import { UpdateAvatarPresenter } from './presenters/UpdateAvatarPresenter';
|
||||||
import { UploadMediaPresenter } from './presenters/UploadMediaPresenter';
|
import { UploadMediaPresenter } from './presenters/UploadMediaPresenter';
|
||||||
|
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import {
|
import {
|
||||||
DELETE_MEDIA_USE_CASE_TOKEN,
|
DELETE_MEDIA_USE_CASE_TOKEN,
|
||||||
GET_AVATAR_USE_CASE_TOKEN,
|
GET_AVATAR_USE_CASE_TOKEN,
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
|
|||||||
import { GetAllNotificationsUseCase } from '@core/notifications/application/use-cases/GetAllNotificationsUseCase';
|
import { GetAllNotificationsUseCase } from '@core/notifications/application/use-cases/GetAllNotificationsUseCase';
|
||||||
import { GetUnreadNotificationsUseCase } from '@core/notifications/application/use-cases/GetUnreadNotificationsUseCase';
|
import { GetUnreadNotificationsUseCase } from '@core/notifications/application/use-cases/GetUnreadNotificationsUseCase';
|
||||||
import { MarkNotificationReadUseCase } from '@core/notifications/application/use-cases/MarkNotificationReadUseCase';
|
import { MarkNotificationReadUseCase } from '@core/notifications/application/use-cases/MarkNotificationReadUseCase';
|
||||||
import { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository';
|
import { NotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Provider } from '@nestjs/common';
|
import { Provider } from '@nestjs/common';
|
||||||
import { NOTIFICATION_REPOSITORY_TOKEN } from '../../persistence/notifications/NotificationsPersistenceTokens';
|
import { NOTIFICATION_REPOSITORY_TOKEN } from '../../persistence/notifications/NotificationsPersistenceTokens';
|
||||||
import {
|
import {
|
||||||
@@ -20,17 +20,17 @@ export const NotificationsProviders: Provider[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_UNREAD_NOTIFICATIONS_USE_CASE_TOKEN,
|
provide: GET_UNREAD_NOTIFICATIONS_USE_CASE_TOKEN,
|
||||||
useFactory: (repo: INotificationRepository, logger: Logger) => new GetUnreadNotificationsUseCase(repo, logger),
|
useFactory: (repo: NotificationRepository, logger: Logger) => new GetUnreadNotificationsUseCase(repo, logger),
|
||||||
inject: [NOTIFICATION_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [NOTIFICATION_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_ALL_NOTIFICATIONS_USE_CASE_TOKEN,
|
provide: GET_ALL_NOTIFICATIONS_USE_CASE_TOKEN,
|
||||||
useFactory: (repo: INotificationRepository, logger: Logger) => new GetAllNotificationsUseCase(repo, logger),
|
useFactory: (repo: NotificationRepository, logger: Logger) => new GetAllNotificationsUseCase(repo, logger),
|
||||||
inject: [NOTIFICATION_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [NOTIFICATION_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: MARK_NOTIFICATION_READ_USE_CASE_TOKEN,
|
provide: MARK_NOTIFICATION_READ_USE_CASE_TOKEN,
|
||||||
useFactory: (repo: INotificationRepository, logger: Logger) => new MarkNotificationReadUseCase(repo, logger),
|
useFactory: (repo: NotificationRepository, logger: Logger) => new MarkNotificationReadUseCase(repo, logger),
|
||||||
inject: [NOTIFICATION_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [NOTIFICATION_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { Provider } from '@nestjs/common';
|
import { Provider } from '@nestjs/common';
|
||||||
|
|
||||||
// Import core interfaces
|
// Import core interfaces
|
||||||
import type { IMemberPaymentRepository, IMembershipFeeRepository } from '@core/payments/domain/repositories/MembershipFeeRepository';
|
import type { MemberPaymentRepository, MembershipFeeRepository } from '@core/payments/domain/repositories/MembershipFeeRepository';
|
||||||
import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
|
import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
|
||||||
import type { IPrizeRepository } from '@core/payments/domain/repositories/PrizeRepository';
|
import type { PrizeRepository } from '@core/payments/domain/repositories/PrizeRepository';
|
||||||
import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/WalletRepository';
|
import type { TransactionRepository, WalletRepository } from '@core/payments/domain/repositories/WalletRepository';
|
||||||
|
|
||||||
// Import use cases
|
// Import use cases
|
||||||
import { AwardPrizeUseCase } from '@core/payments/application/use-cases/AwardPrizeUseCase';
|
import { AwardPrizeUseCase } from '@core/payments/application/use-cases/AwardPrizeUseCase';
|
||||||
@@ -60,65 +60,65 @@ export const PaymentsProviders: Provider[] = [
|
|||||||
// Use cases (use cases receive repositories, services receive use cases)
|
// Use cases (use cases receive repositories, services receive use cases)
|
||||||
{
|
{
|
||||||
provide: GET_PAYMENTS_USE_CASE_TOKEN,
|
provide: GET_PAYMENTS_USE_CASE_TOKEN,
|
||||||
useFactory: (paymentRepo: IPaymentRepository) => new GetPaymentsUseCase(paymentRepo),
|
useFactory: (paymentRepo: PaymentRepository) => new GetPaymentsUseCase(paymentRepo),
|
||||||
inject: [PAYMENT_REPOSITORY_TOKEN],
|
inject: [PAYMENT_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: CREATE_PAYMENT_USE_CASE_TOKEN,
|
provide: CREATE_PAYMENT_USE_CASE_TOKEN,
|
||||||
useFactory: (paymentRepo: IPaymentRepository) => new CreatePaymentUseCase(paymentRepo),
|
useFactory: (paymentRepo: PaymentRepository) => new CreatePaymentUseCase(paymentRepo),
|
||||||
inject: [PAYMENT_REPOSITORY_TOKEN],
|
inject: [PAYMENT_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: UPDATE_PAYMENT_STATUS_USE_CASE_TOKEN,
|
provide: UPDATE_PAYMENT_STATUS_USE_CASE_TOKEN,
|
||||||
useFactory: (paymentRepo: IPaymentRepository) => new UpdatePaymentStatusUseCase(paymentRepo),
|
useFactory: (paymentRepo: PaymentRepository) => new UpdatePaymentStatusUseCase(paymentRepo),
|
||||||
inject: [PAYMENT_REPOSITORY_TOKEN],
|
inject: [PAYMENT_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_MEMBERSHIP_FEES_USE_CASE_TOKEN,
|
provide: GET_MEMBERSHIP_FEES_USE_CASE_TOKEN,
|
||||||
useFactory: (membershipFeeRepo: IMembershipFeeRepository, memberPaymentRepo: IMemberPaymentRepository) =>
|
useFactory: (membershipFeeRepo: MembershipFeeRepository, memberPaymentRepo: MemberPaymentRepository) =>
|
||||||
new GetMembershipFeesUseCase(membershipFeeRepo, memberPaymentRepo),
|
new GetMembershipFeesUseCase(membershipFeeRepo, memberPaymentRepo),
|
||||||
inject: [MEMBERSHIP_FEE_REPOSITORY_TOKEN, MEMBER_PAYMENT_REPOSITORY_TOKEN],
|
inject: [MEMBERSHIP_FEE_REPOSITORY_TOKEN, MEMBER_PAYMENT_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: UPSERT_MEMBERSHIP_FEE_USE_CASE_TOKEN,
|
provide: UPSERT_MEMBERSHIP_FEE_USE_CASE_TOKEN,
|
||||||
useFactory: (membershipFeeRepo: IMembershipFeeRepository) => new UpsertMembershipFeeUseCase(membershipFeeRepo),
|
useFactory: (membershipFeeRepo: MembershipFeeRepository) => new UpsertMembershipFeeUseCase(membershipFeeRepo),
|
||||||
inject: [MEMBERSHIP_FEE_REPOSITORY_TOKEN],
|
inject: [MEMBERSHIP_FEE_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: UPDATE_MEMBER_PAYMENT_USE_CASE_TOKEN,
|
provide: UPDATE_MEMBER_PAYMENT_USE_CASE_TOKEN,
|
||||||
useFactory: (membershipFeeRepo: IMembershipFeeRepository, memberPaymentRepo: IMemberPaymentRepository) =>
|
useFactory: (membershipFeeRepo: MembershipFeeRepository, memberPaymentRepo: MemberPaymentRepository) =>
|
||||||
new UpdateMemberPaymentUseCase(membershipFeeRepo, memberPaymentRepo),
|
new UpdateMemberPaymentUseCase(membershipFeeRepo, memberPaymentRepo),
|
||||||
inject: [MEMBERSHIP_FEE_REPOSITORY_TOKEN, MEMBER_PAYMENT_REPOSITORY_TOKEN],
|
inject: [MEMBERSHIP_FEE_REPOSITORY_TOKEN, MEMBER_PAYMENT_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_PRIZES_USE_CASE_TOKEN,
|
provide: GET_PRIZES_USE_CASE_TOKEN,
|
||||||
useFactory: (prizeRepo: IPrizeRepository) => new GetPrizesUseCase(prizeRepo),
|
useFactory: (prizeRepo: PrizeRepository) => new GetPrizesUseCase(prizeRepo),
|
||||||
inject: [PRIZE_REPOSITORY_TOKEN],
|
inject: [PRIZE_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: CREATE_PRIZE_USE_CASE_TOKEN,
|
provide: CREATE_PRIZE_USE_CASE_TOKEN,
|
||||||
useFactory: (prizeRepo: IPrizeRepository) => new CreatePrizeUseCase(prizeRepo),
|
useFactory: (prizeRepo: PrizeRepository) => new CreatePrizeUseCase(prizeRepo),
|
||||||
inject: [PRIZE_REPOSITORY_TOKEN],
|
inject: [PRIZE_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: AWARD_PRIZE_USE_CASE_TOKEN,
|
provide: AWARD_PRIZE_USE_CASE_TOKEN,
|
||||||
useFactory: (prizeRepo: IPrizeRepository) => new AwardPrizeUseCase(prizeRepo),
|
useFactory: (prizeRepo: PrizeRepository) => new AwardPrizeUseCase(prizeRepo),
|
||||||
inject: [PRIZE_REPOSITORY_TOKEN],
|
inject: [PRIZE_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: DELETE_PRIZE_USE_CASE_TOKEN,
|
provide: DELETE_PRIZE_USE_CASE_TOKEN,
|
||||||
useFactory: (prizeRepo: IPrizeRepository) => new DeletePrizeUseCase(prizeRepo),
|
useFactory: (prizeRepo: PrizeRepository) => new DeletePrizeUseCase(prizeRepo),
|
||||||
inject: [PRIZE_REPOSITORY_TOKEN],
|
inject: [PRIZE_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_WALLET_USE_CASE_TOKEN,
|
provide: GET_WALLET_USE_CASE_TOKEN,
|
||||||
useFactory: (walletRepo: IWalletRepository, transactionRepo: ITransactionRepository) =>
|
useFactory: (walletRepo: WalletRepository, transactionRepo: TransactionRepository) =>
|
||||||
new GetWalletUseCase(walletRepo, transactionRepo),
|
new GetWalletUseCase(walletRepo, transactionRepo),
|
||||||
inject: [WALLET_REPOSITORY_TOKEN, TRANSACTION_REPOSITORY_TOKEN],
|
inject: [WALLET_REPOSITORY_TOKEN, TRANSACTION_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PROCESS_WALLET_TRANSACTION_USE_CASE_TOKEN,
|
provide: PROCESS_WALLET_TRANSACTION_USE_CASE_TOKEN,
|
||||||
useFactory: (walletRepo: IWalletRepository, transactionRepo: ITransactionRepository) =>
|
useFactory: (walletRepo: WalletRepository, transactionRepo: TransactionRepository) =>
|
||||||
new ProcessWalletTransactionUseCase(walletRepo, transactionRepo),
|
new ProcessWalletTransactionUseCase(walletRepo, transactionRepo),
|
||||||
inject: [WALLET_REPOSITORY_TOKEN, TRANSACTION_REPOSITORY_TOKEN],
|
inject: [WALLET_REPOSITORY_TOKEN, TRANSACTION_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
|
|
||||||
// Use cases
|
// Use cases
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { CreatePaymentResult } from '@core/payments/application/use-cases/CreatePaymentUseCase';
|
import type { CreatePaymentResult } from '@core/payments/application/use-cases/CreatePaymentUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { CreatePaymentOutput } from '../dtos/PaymentsDto';
|
import type { CreatePaymentOutput } from '../dtos/PaymentsDto';
|
||||||
|
|
||||||
export class CreatePaymentPresenter implements UseCaseOutputPort<CreatePaymentResult> {
|
export class CreatePaymentPresenter implements UseCaseOutputPort<CreatePaymentResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetPaymentsResult } from '@core/payments/application/use-cases/GetPaymentsUseCase';
|
import type { GetPaymentsResult } from '@core/payments/application/use-cases/GetPaymentsUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { GetPaymentsOutput } from '../dtos/PaymentsDto';
|
import type { GetPaymentsOutput } from '../dtos/PaymentsDto';
|
||||||
|
|
||||||
export class GetPaymentsPresenter implements UseCaseOutputPort<GetPaymentsResult> {
|
export class GetPaymentsPresenter implements UseCaseOutputPort<GetPaymentsResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { UpdatePaymentStatusResult } from '@core/payments/application/use-cases/UpdatePaymentStatusUseCase';
|
import type { UpdatePaymentStatusResult } from '@core/payments/application/use-cases/UpdatePaymentStatusUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { UpdatePaymentStatusOutput } from '../dtos/PaymentsDto';
|
import type { UpdatePaymentStatusOutput } from '../dtos/PaymentsDto';
|
||||||
|
|
||||||
export class UpdatePaymentStatusPresenter implements UseCaseOutputPort<UpdatePaymentStatusResult> {
|
export class UpdatePaymentStatusPresenter implements UseCaseOutputPort<UpdatePaymentStatusResult> {
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import { Provider } from '@nestjs/common';
|
import { Provider } from '@nestjs/common';
|
||||||
|
|
||||||
// Import core interfaces
|
// Import core interfaces
|
||||||
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
|
import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
|
||||||
import type { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
|
import type { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
|
||||||
import type { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
// Import concrete in-memory implementations
|
// Import concrete in-memory implementations
|
||||||
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
|
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
|
||||||
@@ -31,9 +31,9 @@ export const ProtestsProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: ReviewProtestUseCase,
|
provide: ReviewProtestUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
protestRepo: IProtestRepository,
|
protestRepo: ProtestRepository,
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueMembershipRepo: ILeagueMembershipRepository,
|
leagueMembershipRepo: LeagueMembershipRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => new ReviewProtestUseCase(protestRepo, raceRepo, leagueMembershipRepo, logger),
|
) => new ReviewProtestUseCase(protestRepo, raceRepo, leagueMembershipRepo, logger),
|
||||||
inject: [
|
inject: [
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import type {
|
|||||||
ReviewProtestResult,
|
ReviewProtestResult,
|
||||||
ReviewProtestUseCase,
|
ReviewProtestUseCase,
|
||||||
} from '@core/racing/application/use-cases/ReviewProtestUseCase';
|
} from '@core/racing/application/use-cases/ReviewProtestUseCase';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Result } from '@core/shared/domain/Result';
|
import { Result } from '@core/shared/domain/Result';
|
||||||
import { beforeEach, describe, expect, it, vi, type MockedFunction } from 'vitest';
|
import { beforeEach, describe, expect, it, vi, type MockedFunction } from 'vitest';
|
||||||
import { ProtestsService } from './ProtestsService';
|
import { ProtestsService } from './ProtestsService';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
|
|
||||||
// Use cases
|
// Use cases
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { ReviewProtestApplicationError, ReviewProtestResult } from '@core/racing/application/use-cases/ReviewProtestUseCase';
|
import type { ReviewProtestApplicationError, ReviewProtestResult } from '@core/racing/application/use-cases/ReviewProtestUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
|
|
||||||
export interface ReviewProtestResponseDTO {
|
export interface ReviewProtestResponseDTO {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
|
|||||||
@@ -2,16 +2,16 @@ import type { Provider } from '@nestjs/common';
|
|||||||
|
|
||||||
// Import core interfaces
|
// Import core interfaces
|
||||||
import type { DriverRatingProvider } from '@core/racing/application/ports/DriverRatingProvider';
|
import type { DriverRatingProvider } from '@core/racing/application/ports/DriverRatingProvider';
|
||||||
import type { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
|
import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
|
||||||
import type { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
|
import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
|
||||||
import type { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
|
import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
|
||||||
import type { IPenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository';
|
import type { PenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository';
|
||||||
import type { IProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
|
import type { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
|
||||||
import type { IRaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
|
import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
|
||||||
import type { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
||||||
import type { IResultRepository } from '@core/racing/domain/repositories/ResultRepository';
|
import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository';
|
||||||
import type { IStandingRepository } from '@core/racing/domain/repositories/StandingRepository';
|
import type { StandingRepository } from '@core/racing/domain/repositories/StandingRepository';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
// Import concrete in-memory implementations
|
// Import concrete in-memory implementations
|
||||||
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
|
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
|
||||||
@@ -149,8 +149,8 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GetAllRacesUseCase,
|
provide: GetAllRacesUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueRepo: ILeagueRepository,
|
leagueRepo: LeagueRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new GetAllRacesUseCase(raceRepo, leagueRepo, logger);
|
return new GetAllRacesUseCase(raceRepo, leagueRepo, logger);
|
||||||
@@ -160,7 +160,7 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GetTotalRacesUseCase,
|
provide: GetTotalRacesUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
) => {
|
) => {
|
||||||
return new GetTotalRacesUseCase(raceRepo);
|
return new GetTotalRacesUseCase(raceRepo);
|
||||||
},
|
},
|
||||||
@@ -169,11 +169,11 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: ImportRaceResultsApiUseCase,
|
provide: ImportRaceResultsApiUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueRepo: ILeagueRepository,
|
leagueRepo: LeagueRepository,
|
||||||
resultRepo: IResultRepository,
|
resultRepo: ResultRepository,
|
||||||
driverRepo: IDriverRepository,
|
driverRepo: DriverRepository,
|
||||||
standingRepo: IStandingRepository,
|
standingRepo: StandingRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new ImportRaceResultsApiUseCase(
|
return new ImportRaceResultsApiUseCase(
|
||||||
@@ -197,12 +197,12 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GetRaceDetailUseCase,
|
provide: GetRaceDetailUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueRepo: ILeagueRepository,
|
leagueRepo: LeagueRepository,
|
||||||
driverRepo: IDriverRepository,
|
driverRepo: DriverRepository,
|
||||||
raceRegRepo: IRaceRegistrationRepository,
|
raceRegRepo: RaceRegistrationRepository,
|
||||||
resultRepo: IResultRepository,
|
resultRepo: ResultRepository,
|
||||||
leagueMembershipRepo: ILeagueMembershipRepository,
|
leagueMembershipRepo: LeagueMembershipRepository,
|
||||||
) => {
|
) => {
|
||||||
return new GetRaceDetailUseCase(
|
return new GetRaceDetailUseCase(
|
||||||
raceRepo,
|
raceRepo,
|
||||||
@@ -225,8 +225,8 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GetRacesPageDataUseCase,
|
provide: GetRacesPageDataUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueRepo: ILeagueRepository,
|
leagueRepo: LeagueRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new GetRacesPageDataUseCase(
|
return new GetRacesPageDataUseCase(
|
||||||
@@ -240,8 +240,8 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GetAllRacesPageDataUseCase,
|
provide: GetAllRacesPageDataUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueRepo: ILeagueRepository,
|
leagueRepo: LeagueRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new GetAllRacesPageDataUseCase(
|
return new GetAllRacesPageDataUseCase(
|
||||||
@@ -255,11 +255,11 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GetRaceResultsDetailUseCase,
|
provide: GetRaceResultsDetailUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueRepo: ILeagueRepository,
|
leagueRepo: LeagueRepository,
|
||||||
resultRepo: IResultRepository,
|
resultRepo: ResultRepository,
|
||||||
driverRepo: IDriverRepository,
|
driverRepo: DriverRepository,
|
||||||
penaltyRepo: IPenaltyRepository,
|
penaltyRepo: PenaltyRepository,
|
||||||
) => {
|
) => {
|
||||||
return new GetRaceResultsDetailUseCase(
|
return new GetRaceResultsDetailUseCase(
|
||||||
raceRepo,
|
raceRepo,
|
||||||
@@ -280,9 +280,9 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GetRaceWithSOFUseCase,
|
provide: GetRaceWithSOFUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
raceRegRepo: IRaceRegistrationRepository,
|
raceRegRepo: RaceRegistrationRepository,
|
||||||
resultRepo: IResultRepository,
|
resultRepo: ResultRepository,
|
||||||
driverRatingProvider: DriverRatingProvider,
|
driverRatingProvider: DriverRatingProvider,
|
||||||
) => {
|
) => {
|
||||||
return new GetRaceWithSOFUseCase(
|
return new GetRaceWithSOFUseCase(
|
||||||
@@ -305,8 +305,8 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GetRaceProtestsUseCase,
|
provide: GetRaceProtestsUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
protestRepo: IProtestRepository,
|
protestRepo: ProtestRepository,
|
||||||
driverRepo: IDriverRepository,
|
driverRepo: DriverRepository,
|
||||||
) => {
|
) => {
|
||||||
return new GetRaceProtestsUseCase(
|
return new GetRaceProtestsUseCase(
|
||||||
protestRepo,
|
protestRepo,
|
||||||
@@ -318,8 +318,8 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GetRacePenaltiesUseCase,
|
provide: GetRacePenaltiesUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
penaltyRepo: IPenaltyRepository,
|
penaltyRepo: PenaltyRepository,
|
||||||
driverRepo: IDriverRepository,
|
driverRepo: DriverRepository,
|
||||||
) => {
|
) => {
|
||||||
return new GetRacePenaltiesUseCase(
|
return new GetRacePenaltiesUseCase(
|
||||||
penaltyRepo,
|
penaltyRepo,
|
||||||
@@ -331,8 +331,8 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: RegisterForRaceUseCase,
|
provide: RegisterForRaceUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRegRepo: IRaceRegistrationRepository,
|
raceRegRepo: RaceRegistrationRepository,
|
||||||
leagueMembershipRepo: ILeagueMembershipRepository,
|
leagueMembershipRepo: LeagueMembershipRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new RegisterForRaceUseCase(
|
return new RegisterForRaceUseCase(
|
||||||
@@ -346,8 +346,8 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: WithdrawFromRaceUseCase,
|
provide: WithdrawFromRaceUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
raceRegRepo: IRaceRegistrationRepository,
|
raceRegRepo: RaceRegistrationRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new WithdrawFromRaceUseCase(
|
return new WithdrawFromRaceUseCase(
|
||||||
@@ -361,7 +361,7 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: CancelRaceUseCase,
|
provide: CancelRaceUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new CancelRaceUseCase(
|
return new CancelRaceUseCase(
|
||||||
@@ -374,10 +374,10 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: CompleteRaceUseCase,
|
provide: CompleteRaceUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
raceRegRepo: IRaceRegistrationRepository,
|
raceRegRepo: RaceRegistrationRepository,
|
||||||
resultRepo: IResultRepository,
|
resultRepo: ResultRepository,
|
||||||
standingRepo: IStandingRepository,
|
standingRepo: StandingRepository,
|
||||||
driverRatingProvider: DriverRatingProvider,
|
driverRatingProvider: DriverRatingProvider,
|
||||||
) => {
|
) => {
|
||||||
return new CompleteRaceUseCase(
|
return new CompleteRaceUseCase(
|
||||||
@@ -402,7 +402,7 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: ReopenRaceUseCase,
|
provide: ReopenRaceUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new ReopenRaceUseCase(
|
return new ReopenRaceUseCase(
|
||||||
@@ -415,11 +415,11 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: ImportRaceResultsUseCase,
|
provide: ImportRaceResultsUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueRepo: ILeagueRepository,
|
leagueRepo: LeagueRepository,
|
||||||
resultRepo: IResultRepository,
|
resultRepo: ResultRepository,
|
||||||
driverRepo: IDriverRepository,
|
driverRepo: DriverRepository,
|
||||||
standingRepo: IStandingRepository,
|
standingRepo: StandingRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new ImportRaceResultsUseCase(
|
return new ImportRaceResultsUseCase(
|
||||||
@@ -443,9 +443,9 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: FileProtestUseCase,
|
provide: FileProtestUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
protestRepo: IProtestRepository,
|
protestRepo: ProtestRepository,
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueMembershipRepo: ILeagueMembershipRepository,
|
leagueMembershipRepo: LeagueMembershipRepository,
|
||||||
) => {
|
) => {
|
||||||
return new FileProtestUseCase(
|
return new FileProtestUseCase(
|
||||||
protestRepo,
|
protestRepo,
|
||||||
@@ -458,9 +458,9 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: QuickPenaltyUseCase,
|
provide: QuickPenaltyUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
penaltyRepo: IPenaltyRepository,
|
penaltyRepo: PenaltyRepository,
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueMembershipRepo: ILeagueMembershipRepository,
|
leagueMembershipRepo: LeagueMembershipRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new QuickPenaltyUseCase(
|
return new QuickPenaltyUseCase(
|
||||||
@@ -475,10 +475,10 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: ApplyPenaltyUseCase,
|
provide: ApplyPenaltyUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
penaltyRepo: IPenaltyRepository,
|
penaltyRepo: PenaltyRepository,
|
||||||
protestRepo: IProtestRepository,
|
protestRepo: ProtestRepository,
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueMembershipRepo: ILeagueMembershipRepository,
|
leagueMembershipRepo: LeagueMembershipRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new ApplyPenaltyUseCase(
|
return new ApplyPenaltyUseCase(
|
||||||
@@ -494,9 +494,9 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: RequestProtestDefenseUseCase,
|
provide: RequestProtestDefenseUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
protestRepo: IProtestRepository,
|
protestRepo: ProtestRepository,
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueMembershipRepo: ILeagueMembershipRepository,
|
leagueMembershipRepo: LeagueMembershipRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new RequestProtestDefenseUseCase(
|
return new RequestProtestDefenseUseCase(
|
||||||
@@ -511,9 +511,9 @@ export const RaceProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: ReviewProtestUseCase,
|
provide: ReviewProtestUseCase,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
protestRepo: IProtestRepository,
|
protestRepo: ProtestRepository,
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
leagueMembershipRepo: ILeagueMembershipRepository,
|
leagueMembershipRepo: LeagueMembershipRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
return new ReviewProtestUseCase(
|
return new ReviewProtestUseCase(
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { RegisterForRaceParamsDTO } from './dtos/RegisterForRaceParamsDTO';
|
|||||||
import { WithdrawFromRaceParamsDTO } from './dtos/WithdrawFromRaceParamsDTO';
|
import { WithdrawFromRaceParamsDTO } from './dtos/WithdrawFromRaceParamsDTO';
|
||||||
|
|
||||||
// Core imports
|
// Core imports
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
// Use cases
|
// Use cases
|
||||||
import { CancelRaceUseCase } from '@core/racing/application/use-cases/CancelRaceUseCase';
|
import { CancelRaceUseCase } from '@core/racing/application/use-cases/CancelRaceUseCase';
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { DriverRatingProvider } from '@core/racing/application/ports/DriverRatingProvider';
|
import type { DriverRatingProvider } from '@core/racing/application/ports/DriverRatingProvider';
|
||||||
import type { IImageServicePort } from '@core/racing/application/ports/ImageServicePort';
|
import type { ImageServicePort } from '@core/racing/application/ports/ImageServicePort';
|
||||||
import type { GetRaceDetailResult } from '@core/racing/application/use-cases/GetRaceDetailUseCase';
|
import type { GetRaceDetailResult } from '@core/racing/application/use-cases/GetRaceDetailUseCase';
|
||||||
import type { GetRaceDetailParamsDTO } from '../dtos/GetRaceDetailParamsDTO';
|
import type { GetRaceDetailParamsDTO } from '../dtos/GetRaceDetailParamsDTO';
|
||||||
import type { RaceDetailDTO } from '../dtos/RaceDetailDTO';
|
import type { RaceDetailDTO } from '../dtos/RaceDetailDTO';
|
||||||
@@ -16,7 +16,7 @@ export class RaceDetailPresenter {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private readonly driverRatingProvider: DriverRatingProvider,
|
private readonly driverRatingProvider: DriverRatingProvider,
|
||||||
private readonly imageService: IImageServicePort,
|
private readonly imageService: ImageServicePort,
|
||||||
private readonly params: GetRaceDetailParamsDTO,
|
private readonly params: GetRaceDetailParamsDTO,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export class RacePenaltiesPresenter {
|
|||||||
|
|
||||||
present(result: GetRacePenaltiesResult): void {
|
present(result: GetRacePenaltiesResult): void {
|
||||||
const penalties: RacePenaltyDTO[] = result.penalties.map(penalty => ({
|
const penalties: RacePenaltyDTO[] = result.penalties.map(penalty => ({
|
||||||
id: penalty.id,
|
id: penalty.id.toString(),
|
||||||
driverId: penalty.driverId,
|
driverId: penalty.driverId,
|
||||||
type: penalty.type,
|
type: penalty.type,
|
||||||
value: penalty.value ?? 0,
|
value: penalty.value ?? 0,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { IImageServicePort } from '@core/racing/application/ports/ImageServicePort';
|
import type { ImageServicePort } from '@core/racing/application/ports/ImageServicePort';
|
||||||
import type {
|
import type {
|
||||||
GetRaceResultsDetailErrorCode,
|
GetRaceResultsDetailErrorCode,
|
||||||
GetRaceResultsDetailResult,
|
GetRaceResultsDetailResult,
|
||||||
@@ -17,7 +17,7 @@ export type GetRaceResultsDetailApplicationError = ApplicationErrorCode<
|
|||||||
export class RaceResultsDetailPresenter {
|
export class RaceResultsDetailPresenter {
|
||||||
private result: GetRaceResultsDetailResult | null = null;
|
private result: GetRaceResultsDetailResult | null = null;
|
||||||
|
|
||||||
constructor(private readonly imageService: IImageServicePort) {}
|
constructor(private readonly imageService: ImageServicePort) {}
|
||||||
|
|
||||||
present(result: GetRaceResultsDetailResult): void {
|
present(result: GetRaceResultsDetailResult): void {
|
||||||
this.result = result;
|
this.result = result;
|
||||||
|
|||||||
@@ -3,18 +3,18 @@ import { SponsorService } from './SponsorService';
|
|||||||
|
|
||||||
// Import core interfaces
|
// Import core interfaces
|
||||||
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';
|
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';
|
||||||
import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
|
import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
|
||||||
import type { IWalletRepository } from '@core/payments/domain/repositories/WalletRepository';
|
import type { WalletRepository } from '@core/payments/domain/repositories/WalletRepository';
|
||||||
import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
|
import { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
|
||||||
import { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
|
import { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
|
||||||
import { ILeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository';
|
import { LeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository';
|
||||||
import { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
import { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
||||||
import { ISeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
|
import { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
|
||||||
import { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
|
import { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
|
||||||
import { ISponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
|
import { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
|
||||||
import { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
|
import { SponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
|
||||||
import { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
|
import { SponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import { GetSponsorBillingUseCase } from '@core/payments/application/use-cases/GetSponsorBillingUseCase';
|
import { GetSponsorBillingUseCase } from '@core/payments/application/use-cases/GetSponsorBillingUseCase';
|
||||||
import { AcceptSponsorshipRequestUseCase } from '@core/racing/application/use-cases/AcceptSponsorshipRequestUseCase';
|
import { AcceptSponsorshipRequestUseCase } from '@core/racing/application/use-cases/AcceptSponsorshipRequestUseCase';
|
||||||
@@ -33,18 +33,18 @@ import { InMemoryPaymentRepository } from '@adapters/payments/persistence/inmemo
|
|||||||
import { InMemoryWalletRepository } from '@adapters/payments/persistence/inmemory/InMemoryWalletRepository';
|
import { InMemoryWalletRepository } from '@adapters/payments/persistence/inmemory/InMemoryWalletRepository';
|
||||||
|
|
||||||
// Define injection tokens
|
// Define injection tokens
|
||||||
export const SPONSOR_REPOSITORY_TOKEN = 'ISponsorRepository';
|
export const SPONSOR_REPOSITORY_TOKEN = 'SponsorRepository';
|
||||||
export const SEASON_SPONSORSHIP_REPOSITORY_TOKEN = 'ISeasonSponsorshipRepository';
|
export const SEASON_SPONSORSHIP_REPOSITORY_TOKEN = 'SeasonSponsorshipRepository';
|
||||||
export const SEASON_REPOSITORY_TOKEN = 'ISeasonRepository';
|
export const SEASON_REPOSITORY_TOKEN = 'SeasonRepository';
|
||||||
export const LEAGUE_REPOSITORY_TOKEN = 'ILeagueRepository';
|
export const LEAGUE_REPOSITORY_TOKEN = 'LeagueRepository';
|
||||||
export const LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN = 'ILeagueMembershipRepository';
|
export const LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN = 'LeagueMembershipRepository';
|
||||||
export const RACE_REPOSITORY_TOKEN = 'IRaceRepository';
|
export const RACE_REPOSITORY_TOKEN = 'RaceRepository';
|
||||||
export const SPONSORSHIP_PRICING_REPOSITORY_TOKEN = 'ISponsorshipPricingRepository';
|
export const SPONSORSHIP_PRICING_REPOSITORY_TOKEN = 'SponsorshipPricingRepository';
|
||||||
export const SPONSORSHIP_REQUEST_REPOSITORY_TOKEN = 'ISponsorshipRequestRepository';
|
export const SPONSORSHIP_REQUEST_REPOSITORY_TOKEN = 'SponsorshipRequestRepository';
|
||||||
export const PAYMENT_REPOSITORY_TOKEN = 'IPaymentRepository';
|
export const PAYMENT_REPOSITORY_TOKEN = 'PaymentRepository';
|
||||||
export const WALLET_REPOSITORY_TOKEN = 'IWalletRepository';
|
export const WALLET_REPOSITORY_TOKEN = 'WalletRepository';
|
||||||
export const LEAGUE_WALLET_REPOSITORY_TOKEN = 'ILeagueWalletRepository';
|
export const LEAGUE_WALLET_REPOSITORY_TOKEN = 'LeagueWalletRepository';
|
||||||
export const NOTIFICATION_SERVICE_TOKEN = 'INotificationService';
|
export const NOTIFICATION_SERVICE_TOKEN = 'NotificationService';
|
||||||
export const LOGGER_TOKEN = 'Logger';
|
export const LOGGER_TOKEN = 'Logger';
|
||||||
|
|
||||||
// Use case / application service tokens
|
// Use case / application service tokens
|
||||||
@@ -88,23 +88,23 @@ export const SponsorProviders: Provider[] = [
|
|||||||
// Use cases
|
// Use cases
|
||||||
{
|
{
|
||||||
provide: GET_SPONSORS_USE_CASE_TOKEN,
|
provide: GET_SPONSORS_USE_CASE_TOKEN,
|
||||||
useFactory: (sponsorRepo: ISponsorRepository) => new GetSponsorsUseCase(sponsorRepo),
|
useFactory: (sponsorRepo: SponsorRepository) => new GetSponsorsUseCase(sponsorRepo),
|
||||||
inject: [SPONSOR_REPOSITORY_TOKEN],
|
inject: [SPONSOR_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: CREATE_SPONSOR_USE_CASE_TOKEN,
|
provide: CREATE_SPONSOR_USE_CASE_TOKEN,
|
||||||
useFactory: (sponsorRepo: ISponsorRepository, logger: Logger) => new CreateSponsorUseCase(sponsorRepo, logger),
|
useFactory: (sponsorRepo: SponsorRepository, logger: Logger) => new CreateSponsorUseCase(sponsorRepo, logger),
|
||||||
inject: [SPONSOR_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [SPONSOR_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_SPONSOR_DASHBOARD_USE_CASE_TOKEN,
|
provide: GET_SPONSOR_DASHBOARD_USE_CASE_TOKEN,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
sponsorRepo: ISponsorRepository,
|
sponsorRepo: SponsorRepository,
|
||||||
seasonSponsorshipRepo: ISeasonSponsorshipRepository,
|
seasonSponsorshipRepo: SeasonSponsorshipRepository,
|
||||||
seasonRepo: ISeasonRepository,
|
seasonRepo: SeasonRepository,
|
||||||
leagueRepo: ILeagueRepository,
|
leagueRepo: LeagueRepository,
|
||||||
leagueMembershipRepo: ILeagueMembershipRepository,
|
leagueMembershipRepo: LeagueMembershipRepository,
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
) => new GetSponsorDashboardUseCase(sponsorRepo, seasonSponsorshipRepo, seasonRepo, leagueRepo, leagueMembershipRepo, raceRepo),
|
) => new GetSponsorDashboardUseCase(sponsorRepo, seasonSponsorshipRepo, seasonRepo, leagueRepo, leagueMembershipRepo, raceRepo),
|
||||||
inject: [
|
inject: [
|
||||||
SPONSOR_REPOSITORY_TOKEN,
|
SPONSOR_REPOSITORY_TOKEN,
|
||||||
@@ -118,12 +118,12 @@ export const SponsorProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GET_SPONSOR_SPONSORSHIPS_USE_CASE_TOKEN,
|
provide: GET_SPONSOR_SPONSORSHIPS_USE_CASE_TOKEN,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
sponsorRepo: ISponsorRepository,
|
sponsorRepo: SponsorRepository,
|
||||||
seasonSponsorshipRepo: ISeasonSponsorshipRepository,
|
seasonSponsorshipRepo: SeasonSponsorshipRepository,
|
||||||
seasonRepo: ISeasonRepository,
|
seasonRepo: SeasonRepository,
|
||||||
leagueRepo: ILeagueRepository,
|
leagueRepo: LeagueRepository,
|
||||||
leagueMembershipRepo: ILeagueMembershipRepository,
|
leagueMembershipRepo: LeagueMembershipRepository,
|
||||||
raceRepo: IRaceRepository,
|
raceRepo: RaceRepository,
|
||||||
) => new GetSponsorSponsorshipsUseCase(sponsorRepo, seasonSponsorshipRepo, seasonRepo, leagueRepo, leagueMembershipRepo, raceRepo),
|
) => new GetSponsorSponsorshipsUseCase(sponsorRepo, seasonSponsorshipRepo, seasonRepo, leagueRepo, leagueMembershipRepo, raceRepo),
|
||||||
inject: [
|
inject: [
|
||||||
SPONSOR_REPOSITORY_TOKEN,
|
SPONSOR_REPOSITORY_TOKEN,
|
||||||
@@ -137,8 +137,8 @@ export const SponsorProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GET_SPONSOR_BILLING_USE_CASE_TOKEN,
|
provide: GET_SPONSOR_BILLING_USE_CASE_TOKEN,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
paymentRepo: IPaymentRepository,
|
paymentRepo: PaymentRepository,
|
||||||
seasonSponsorshipRepo: ISeasonSponsorshipRepository,
|
seasonSponsorshipRepo: SeasonSponsorshipRepository,
|
||||||
) => {
|
) => {
|
||||||
return new GetSponsorBillingUseCase(paymentRepo, seasonSponsorshipRepo);
|
return new GetSponsorBillingUseCase(paymentRepo, seasonSponsorshipRepo);
|
||||||
},
|
},
|
||||||
@@ -147,7 +147,7 @@ export const SponsorProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: GET_ENTITY_SPONSORSHIP_PRICING_USE_CASE_TOKEN,
|
provide: GET_ENTITY_SPONSORSHIP_PRICING_USE_CASE_TOKEN,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
sponsorshipPricingRepo: ISponsorshipPricingRepository,
|
sponsorshipPricingRepo: SponsorshipPricingRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => new GetEntitySponsorshipPricingUseCase(sponsorshipPricingRepo, logger),
|
) => new GetEntitySponsorshipPricingUseCase(sponsorshipPricingRepo, logger),
|
||||||
inject: [
|
inject: [
|
||||||
@@ -157,26 +157,26 @@ export const SponsorProviders: Provider[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_SPONSOR_USE_CASE_TOKEN,
|
provide: GET_SPONSOR_USE_CASE_TOKEN,
|
||||||
useFactory: (sponsorRepo: ISponsorRepository) => new GetSponsorUseCase(sponsorRepo),
|
useFactory: (sponsorRepo: SponsorRepository) => new GetSponsorUseCase(sponsorRepo),
|
||||||
inject: [SPONSOR_REPOSITORY_TOKEN],
|
inject: [SPONSOR_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_PENDING_SPONSORSHIP_REQUESTS_USE_CASE_TOKEN,
|
provide: GET_PENDING_SPONSORSHIP_REQUESTS_USE_CASE_TOKEN,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
sponsorshipRequestRepo: ISponsorshipRequestRepository,
|
sponsorshipRequestRepo: SponsorshipRequestRepository,
|
||||||
sponsorRepo: ISponsorRepository,
|
sponsorRepo: SponsorRepository,
|
||||||
) => new GetPendingSponsorshipRequestsUseCase(sponsorshipRequestRepo, sponsorRepo),
|
) => new GetPendingSponsorshipRequestsUseCase(sponsorshipRequestRepo, sponsorRepo),
|
||||||
inject: [SPONSORSHIP_REQUEST_REPOSITORY_TOKEN, SPONSOR_REPOSITORY_TOKEN],
|
inject: [SPONSORSHIP_REQUEST_REPOSITORY_TOKEN, SPONSOR_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: ACCEPT_SPONSORSHIP_REQUEST_USE_CASE_TOKEN,
|
provide: ACCEPT_SPONSORSHIP_REQUEST_USE_CASE_TOKEN,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
sponsorshipRequestRepo: ISponsorshipRequestRepository,
|
sponsorshipRequestRepo: SponsorshipRequestRepository,
|
||||||
seasonSponsorshipRepo: ISeasonSponsorshipRepository,
|
seasonSponsorshipRepo: SeasonSponsorshipRepository,
|
||||||
seasonRepo: ISeasonRepository,
|
seasonRepo: SeasonRepository,
|
||||||
notificationService: NotificationService,
|
notificationService: NotificationService,
|
||||||
walletRepository: IWalletRepository,
|
walletRepository: WalletRepository,
|
||||||
leagueWalletRepository: ILeagueWalletRepository,
|
leagueWalletRepository: LeagueWalletRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => {
|
) => {
|
||||||
// Create a mock payment processor function
|
// Create a mock payment processor function
|
||||||
@@ -209,7 +209,7 @@ export const SponsorProviders: Provider[] = [
|
|||||||
{
|
{
|
||||||
provide: REJECT_SPONSORSHIP_REQUEST_USE_CASE_TOKEN,
|
provide: REJECT_SPONSORSHIP_REQUEST_USE_CASE_TOKEN,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
sponsorshipRequestRepo: ISponsorshipRequestRepository,
|
sponsorshipRequestRepo: SponsorshipRequestRepository,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
) => new RejectSponsorshipRequestUseCase(sponsorshipRequestRepo, logger),
|
) => new RejectSponsorshipRequestUseCase(sponsorshipRequestRepo, logger),
|
||||||
inject: [SPONSORSHIP_REQUEST_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [SPONSORSHIP_REQUEST_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import type { GetSponsorUseCase } from '@core/racing/application/use-cases/GetSp
|
|||||||
import type { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase';
|
import type { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase';
|
||||||
import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';
|
import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';
|
||||||
import { Money } from '@core/racing/domain/value-objects/Money';
|
import { Money } from '@core/racing/domain/value-objects/Money';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Result } from '@core/shared/domain/Result';
|
import { Result } from '@core/shared/domain/Result';
|
||||||
import { beforeEach, describe, expect, it, Mock, vi } from 'vitest';
|
import { beforeEach, describe, expect, it, Mock, vi } from 'vitest';
|
||||||
import type { CreateSponsorInputDTO } from './dtos/CreateSponsorInputDTO';
|
import type { CreateSponsorInputDTO } from './dtos/CreateSponsorInputDTO';
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ import { GetSponsorsUseCase } from '@core/racing/application/use-cases/GetSponso
|
|||||||
import { GetSponsorUseCase } from '@core/racing/application/use-cases/GetSponsorUseCase';
|
import { GetSponsorUseCase } from '@core/racing/application/use-cases/GetSponsorUseCase';
|
||||||
import { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase';
|
import { RejectSponsorshipRequestUseCase } from '@core/racing/application/use-cases/RejectSponsorshipRequestUseCase';
|
||||||
import type { SponsorableEntityType } from '@core/racing/domain/entities/SponsorshipRequest';
|
import type { SponsorableEntityType } from '@core/racing/domain/entities/SponsorshipRequest';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
// Tokens
|
// Tokens
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -30,11 +30,11 @@ export {
|
|||||||
|
|
||||||
// Import core interfaces
|
// Import core interfaces
|
||||||
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
|
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
|
||||||
import type { IDriverRepository } from '@core/racing/domain/repositories/DriverRepository';
|
import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
|
||||||
import type { ITeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
|
import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
|
||||||
import type { ITeamRepository } from '@core/racing/domain/repositories/TeamRepository';
|
import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository';
|
||||||
import type { ITeamStatsRepository } from '@core/racing/domain/repositories/TeamStatsRepository';
|
import type { TeamStatsRepository } from '@core/racing/domain/repositories/TeamStatsRepository';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
// Import concrete implementations
|
// Import concrete implementations
|
||||||
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
|
import { ConsoleLogger } from '@adapters/logging/ConsoleLogger';
|
||||||
@@ -103,55 +103,55 @@ export const TeamProviders: Provider[] = [
|
|||||||
// Use Cases
|
// Use Cases
|
||||||
{
|
{
|
||||||
provide: GET_ALL_TEAMS_USE_CASE_TOKEN,
|
provide: GET_ALL_TEAMS_USE_CASE_TOKEN,
|
||||||
useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository, statsRepo: ITeamStatsRepository, logger: Logger) =>
|
useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository, statsRepo: TeamStatsRepository, logger: Logger) =>
|
||||||
new GetAllTeamsUseCase(teamRepo, membershipRepo, statsRepo, logger),
|
new GetAllTeamsUseCase(teamRepo, membershipRepo, statsRepo, logger),
|
||||||
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, TEAM_STATS_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, TEAM_STATS_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_TEAM_DETAILS_USE_CASE_TOKEN,
|
provide: GET_TEAM_DETAILS_USE_CASE_TOKEN,
|
||||||
useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository) =>
|
useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository) =>
|
||||||
new GetTeamDetailsUseCase(teamRepo, membershipRepo),
|
new GetTeamDetailsUseCase(teamRepo, membershipRepo),
|
||||||
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN],
|
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_TEAM_MEMBERS_USE_CASE_TOKEN,
|
provide: GET_TEAM_MEMBERS_USE_CASE_TOKEN,
|
||||||
useFactory: (membershipRepo: ITeamMembershipRepository, driverRepo: IDriverRepository, teamRepo: ITeamRepository, logger: Logger) =>
|
useFactory: (membershipRepo: TeamMembershipRepository, driverRepo: DriverRepository, teamRepo: TeamRepository, logger: Logger) =>
|
||||||
new GetTeamMembersUseCase(membershipRepo, driverRepo, teamRepo, logger),
|
new GetTeamMembersUseCase(membershipRepo, driverRepo, teamRepo, logger),
|
||||||
inject: [TEAM_MEMBERSHIP_REPOSITORY_TOKEN, DRIVER_REPOSITORY_TOKEN, TEAM_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [TEAM_MEMBERSHIP_REPOSITORY_TOKEN, DRIVER_REPOSITORY_TOKEN, TEAM_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_TEAM_JOIN_REQUESTS_USE_CASE_TOKEN,
|
provide: GET_TEAM_JOIN_REQUESTS_USE_CASE_TOKEN,
|
||||||
useFactory: (membershipRepo: ITeamMembershipRepository, driverRepo: IDriverRepository, teamRepo: ITeamRepository) =>
|
useFactory: (membershipRepo: TeamMembershipRepository, driverRepo: DriverRepository, teamRepo: TeamRepository) =>
|
||||||
new GetTeamJoinRequestsUseCase(membershipRepo, driverRepo, teamRepo),
|
new GetTeamJoinRequestsUseCase(membershipRepo, driverRepo, teamRepo),
|
||||||
inject: [TEAM_MEMBERSHIP_REPOSITORY_TOKEN, DRIVER_REPOSITORY_TOKEN, TEAM_REPOSITORY_TOKEN],
|
inject: [TEAM_MEMBERSHIP_REPOSITORY_TOKEN, DRIVER_REPOSITORY_TOKEN, TEAM_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: CREATE_TEAM_USE_CASE_TOKEN,
|
provide: CREATE_TEAM_USE_CASE_TOKEN,
|
||||||
useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository, logger: Logger) =>
|
useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository, logger: Logger) =>
|
||||||
new CreateTeamUseCase(teamRepo, membershipRepo, logger),
|
new CreateTeamUseCase(teamRepo, membershipRepo, logger),
|
||||||
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: UPDATE_TEAM_USE_CASE_TOKEN,
|
provide: UPDATE_TEAM_USE_CASE_TOKEN,
|
||||||
useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository) =>
|
useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository) =>
|
||||||
new UpdateTeamUseCase(teamRepo, membershipRepo),
|
new UpdateTeamUseCase(teamRepo, membershipRepo),
|
||||||
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN],
|
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_DRIVER_TEAM_USE_CASE_TOKEN,
|
provide: GET_DRIVER_TEAM_USE_CASE_TOKEN,
|
||||||
useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository, logger: Logger) =>
|
useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository, logger: Logger) =>
|
||||||
new GetDriverTeamUseCase(teamRepo, membershipRepo, logger),
|
new GetDriverTeamUseCase(teamRepo, membershipRepo, logger),
|
||||||
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: GET_TEAM_MEMBERSHIP_USE_CASE_TOKEN,
|
provide: GET_TEAM_MEMBERSHIP_USE_CASE_TOKEN,
|
||||||
useFactory: (membershipRepo: ITeamMembershipRepository, logger: Logger) =>
|
useFactory: (membershipRepo: TeamMembershipRepository, logger: Logger) =>
|
||||||
new GetTeamMembershipUseCase(membershipRepo, logger),
|
new GetTeamMembershipUseCase(membershipRepo, logger),
|
||||||
inject: [TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: JOIN_TEAM_USE_CASE_TOKEN,
|
provide: JOIN_TEAM_USE_CASE_TOKEN,
|
||||||
useFactory: (teamRepo: ITeamRepository, membershipRepo: ITeamMembershipRepository, logger: Logger) =>
|
useFactory: (teamRepo: TeamRepository, membershipRepo: TeamMembershipRepository, logger: Logger) =>
|
||||||
new JoinTeamUseCase(teamRepo, membershipRepo, logger),
|
new JoinTeamUseCase(teamRepo, membershipRepo, logger),
|
||||||
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
inject: [TEAM_REPOSITORY_TOKEN, TEAM_MEMBERSHIP_REPOSITORY_TOKEN, LOGGER_TOKEN],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { GetTeamJoinRequestsUseCase } from '@core/racing/application/use-cases/G
|
|||||||
import { GetTeamMembershipUseCase } from '@core/racing/application/use-cases/GetTeamMembershipUseCase';
|
import { GetTeamMembershipUseCase } from '@core/racing/application/use-cases/GetTeamMembershipUseCase';
|
||||||
import { GetTeamMembersUseCase } from '@core/racing/application/use-cases/GetTeamMembersUseCase';
|
import { GetTeamMembersUseCase } from '@core/racing/application/use-cases/GetTeamMembersUseCase';
|
||||||
import { UpdateTeamUseCase } from '@core/racing/application/use-cases/UpdateTeamUseCase';
|
import { UpdateTeamUseCase } from '@core/racing/application/use-cases/UpdateTeamUseCase';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Result } from '@core/shared/domain/Result';
|
import { Result } from '@core/shared/domain/Result';
|
||||||
import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest';
|
import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest';
|
||||||
import type { CreateTeamInputDTO } from './dtos/CreateTeamInputDTO';
|
import type { CreateTeamInputDTO } from './dtos/CreateTeamInputDTO';
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { UpdateTeamInputDTO } from './dtos/UpdateTeamInputDTO';
|
|||||||
import { UpdateTeamOutputDTO } from './dtos/UpdateTeamOutputDTO';
|
import { UpdateTeamOutputDTO } from './dtos/UpdateTeamOutputDTO';
|
||||||
|
|
||||||
// Core imports
|
// Core imports
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
// Use cases
|
// Use cases
|
||||||
import { CreateTeamInput, CreateTeamUseCase } from '@core/racing/application/use-cases/CreateTeamUseCase';
|
import { CreateTeamInput, CreateTeamUseCase } from '@core/racing/application/use-cases/CreateTeamUseCase';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { MediaReference } from '@core/domain/media/MediaReference';
|
import { MediaReference } from '@core/domain/media/MediaReference';
|
||||||
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
|
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
|
||||||
import type { GetAllTeamsResult } from '@core/racing/application/use-cases/GetAllTeamsUseCase';
|
import type { GetAllTeamsResult } from '@core/racing/application/use-cases/GetAllTeamsUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { GetAllTeamsOutputDTO } from '../dtos/GetAllTeamsOutputDTO';
|
import { GetAllTeamsOutputDTO } from '../dtos/GetAllTeamsOutputDTO';
|
||||||
import { TeamListItemDTO } from '../dtos/TeamListItemDTO';
|
import { TeamListItemDTO } from '../dtos/TeamListItemDTO';
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { CreateTeamResult } from '@core/racing/application/use-cases/CreateTeamUseCase';
|
import type { CreateTeamResult } from '@core/racing/application/use-cases/CreateTeamUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { CreateTeamOutputDTO } from '../dtos/CreateTeamOutputDTO';
|
import type { CreateTeamOutputDTO } from '../dtos/CreateTeamOutputDTO';
|
||||||
|
|
||||||
export class CreateTeamPresenter implements UseCaseOutputPort<CreateTeamResult> {
|
export class CreateTeamPresenter implements UseCaseOutputPort<CreateTeamResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetDriverTeamResult } from '@core/racing/application/use-cases/GetDriverTeamUseCase';
|
import type { GetDriverTeamResult } from '@core/racing/application/use-cases/GetDriverTeamUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import { GetDriverTeamOutputDTO } from '../dtos/GetDriverTeamOutputDTO';
|
import { GetDriverTeamOutputDTO } from '../dtos/GetDriverTeamOutputDTO';
|
||||||
|
|
||||||
export class DriverTeamPresenter implements UseCaseOutputPort<GetDriverTeamResult> {
|
export class DriverTeamPresenter implements UseCaseOutputPort<GetDriverTeamResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetTeamDetailsResult } from '@core/racing/application/use-cases/GetTeamDetailsUseCase';
|
import type { GetTeamDetailsResult } from '@core/racing/application/use-cases/GetTeamDetailsUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { GetTeamDetailsOutputDTO } from '../dtos/GetTeamDetailsOutputDTO';
|
import type { GetTeamDetailsOutputDTO } from '../dtos/GetTeamDetailsOutputDTO';
|
||||||
|
|
||||||
export class TeamDetailsPresenter implements UseCaseOutputPort<GetTeamDetailsResult> {
|
export class TeamDetailsPresenter implements UseCaseOutputPort<GetTeamDetailsResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetTeamJoinRequestsResult } from '@core/racing/application/use-cases/GetTeamJoinRequestsUseCase';
|
import type { GetTeamJoinRequestsResult } from '@core/racing/application/use-cases/GetTeamJoinRequestsUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { GetTeamJoinRequestsOutputDTO } from '../dtos/GetTeamJoinRequestsOutputDTO';
|
import type { GetTeamJoinRequestsOutputDTO } from '../dtos/GetTeamJoinRequestsOutputDTO';
|
||||||
|
|
||||||
export class TeamJoinRequestsPresenter implements UseCaseOutputPort<GetTeamJoinRequestsResult> {
|
export class TeamJoinRequestsPresenter implements UseCaseOutputPort<GetTeamJoinRequestsResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetTeamMembersResult } from '@core/racing/application/use-cases/GetTeamMembersUseCase';
|
import type { GetTeamMembersResult } from '@core/racing/application/use-cases/GetTeamMembersUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { GetTeamMembersOutputDTO } from '../dtos/GetTeamMembersOutputDTO';
|
import type { GetTeamMembersOutputDTO } from '../dtos/GetTeamMembersOutputDTO';
|
||||||
|
|
||||||
export class TeamMembersPresenter implements UseCaseOutputPort<GetTeamMembersResult> {
|
export class TeamMembersPresenter implements UseCaseOutputPort<GetTeamMembersResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetTeamMembershipResult } from '@core/racing/application/use-cases/GetTeamMembershipUseCase';
|
import type { GetTeamMembershipResult } from '@core/racing/application/use-cases/GetTeamMembershipUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { GetTeamMembershipOutputDTO } from '../dtos/GetTeamMembershipOutputDTO';
|
import type { GetTeamMembershipOutputDTO } from '../dtos/GetTeamMembershipOutputDTO';
|
||||||
|
|
||||||
export class TeamMembershipPresenter implements UseCaseOutputPort<GetTeamMembershipResult> {
|
export class TeamMembershipPresenter implements UseCaseOutputPort<GetTeamMembershipResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { GetTeamsLeaderboardResult } from '@core/racing/application/use-cases/GetTeamsLeaderboardUseCase';
|
import type { GetTeamsLeaderboardResult } from '@core/racing/application/use-cases/GetTeamsLeaderboardUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { GetTeamsLeaderboardOutputDTO } from '../dtos/GetTeamsLeaderboardOutputDTO';
|
import type { GetTeamsLeaderboardOutputDTO } from '../dtos/GetTeamsLeaderboardOutputDTO';
|
||||||
|
|
||||||
export class TeamsLeaderboardPresenter implements UseCaseOutputPort<GetTeamsLeaderboardResult> {
|
export class TeamsLeaderboardPresenter implements UseCaseOutputPort<GetTeamsLeaderboardResult> {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { UpdateTeamResult } from '@core/racing/application/use-cases/UpdateTeamUseCase';
|
import type { UpdateTeamResult } from '@core/racing/application/use-cases/UpdateTeamUseCase';
|
||||||
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { UseCaseOutputPort } from '@core/shared/application/UseCaseOutputPort';
|
||||||
import type { UpdateTeamOutputDTO } from '../dtos/UpdateTeamOutputDTO';
|
import type { UpdateTeamOutputDTO } from '../dtos/UpdateTeamOutputDTO';
|
||||||
|
|
||||||
export class UpdateTeamPresenter implements UseCaseOutputPort<UpdateTeamResult> {
|
export class UpdateTeamPresenter implements UseCaseOutputPort<UpdateTeamResult> {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
|
|||||||
|
|
||||||
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
||||||
|
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import { InMemoryAchievementRepository } from '@adapters/identity/persistence/inmemory/InMemoryAchievementRepository';
|
import { InMemoryAchievementRepository } from '@adapters/identity/persistence/inmemory/InMemoryAchievementRepository';
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
|
|||||||
|
|
||||||
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
||||||
|
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import type { PageViewRepository } from '@core/analytics/application/repositories/PageViewRepository';
|
import type { PageViewRepository } from '@core/analytics/application/repositories/PageViewRepository';
|
||||||
import type { AnalyticsSnapshotRepository } from '@core/analytics/domain/repositories/AnalyticsSnapshotRepository';
|
import type { AnalyticsSnapshotRepository } from '@core/analytics/domain/repositories/AnalyticsSnapshotRepository';
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { LoggingModule } from '../../domain/logging/LoggingModule';
|
|||||||
|
|
||||||
import type { StoredUser } from '@core/identity/domain/repositories/UserRepository';
|
import type { StoredUser } from '@core/identity/domain/repositories/UserRepository';
|
||||||
import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
|
import type { PasswordHashingService } from '@core/identity/domain/services/PasswordHashingService';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import { InMemoryAuthRepository } from '@adapters/identity/persistence/inmemory/InMemoryAuthRepository';
|
import { InMemoryAuthRepository } from '@adapters/identity/persistence/inmemory/InMemoryAuthRepository';
|
||||||
import { InMemoryCompanyRepository } from '@adapters/identity/persistence/inmemory/InMemoryCompanyRepository';
|
import { InMemoryCompanyRepository } from '@adapters/identity/persistence/inmemory/InMemoryCompanyRepository';
|
||||||
|
|||||||
@@ -2,25 +2,25 @@ import { Module } from '@nestjs/common';
|
|||||||
|
|
||||||
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
||||||
|
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import type { IAvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository';
|
import type { AvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository';
|
||||||
import type { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository';
|
import type { AvatarRepository } from '@core/media/domain/repositories/AvatarRepository';
|
||||||
import type { IMediaRepository } from '@core/media/domain/repositories/MediaRepository';
|
import type { MediaRepository } from '@core/media/domain/repositories/MediaRepository';
|
||||||
|
|
||||||
import { InMemoryAvatarGenerationRepository } from '@adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository';
|
import { InMemoryAvatarGenerationRepository } from '@adapters/media/persistence/inmemory/InMemoryAvatarGenerationRepository';
|
||||||
|
|
||||||
import { AVATAR_GENERATION_REPOSITORY_TOKEN, AVATAR_REPOSITORY_TOKEN, MEDIA_REPOSITORY_TOKEN } from '../media/MediaPersistenceTokens';
|
import { AVATAR_GENERATION_REPOSITORY_TOKEN, AVATAR_REPOSITORY_TOKEN, MEDIA_REPOSITORY_TOKEN } from '../media/MediaPersistenceTokens';
|
||||||
|
|
||||||
// Mock implementations for Media and Avatar repositories (inmemory only has AvatarGeneration)
|
// Mock implementations for Media and Avatar repositories (inmemory only has AvatarGeneration)
|
||||||
class MockMediaRepository implements IMediaRepository {
|
class MockMediaRepository implements MediaRepository {
|
||||||
async save(): Promise<void> {}
|
async save(): Promise<void> {}
|
||||||
async findById(): Promise<null> { return null; }
|
async findById(): Promise<null> { return null; }
|
||||||
async findByUploadedBy(): Promise<[]> { return []; }
|
async findByUploadedBy(): Promise<[]> { return []; }
|
||||||
async delete(): Promise<void> {}
|
async delete(): Promise<void> {}
|
||||||
}
|
}
|
||||||
|
|
||||||
class MockAvatarRepository implements IAvatarRepository {
|
class MockAvatarRepository implements AvatarRepository {
|
||||||
async save(): Promise<void> {}
|
async save(): Promise<void> {}
|
||||||
async findById(): Promise<null> { return null; }
|
async findById(): Promise<null> { return null; }
|
||||||
async findActiveByDriverId(): Promise<null> { return null; }
|
async findActiveByDriverId(): Promise<null> { return null; }
|
||||||
@@ -33,7 +33,7 @@ class MockAvatarRepository implements IAvatarRepository {
|
|||||||
providers: [
|
providers: [
|
||||||
{
|
{
|
||||||
provide: AVATAR_GENERATION_REPOSITORY_TOKEN,
|
provide: AVATAR_GENERATION_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): IAvatarGenerationRepository =>
|
useFactory: (logger: Logger): AvatarGenerationRepository =>
|
||||||
new InMemoryAvatarGenerationRepository(logger),
|
new InMemoryAvatarGenerationRepository(logger),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ import { Module } from '@nestjs/common';
|
|||||||
|
|
||||||
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
||||||
|
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import type { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway';
|
import type { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway';
|
||||||
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';
|
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';
|
||||||
import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository';
|
import type { NotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository';
|
||||||
import type { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository';
|
import type { NotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository';
|
||||||
|
|
||||||
import { InMemoryNotificationPreferenceRepository } from '@adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository';
|
import { InMemoryNotificationPreferenceRepository } from '@adapters/notifications/persistence/inmemory/InMemoryNotificationPreferenceRepository';
|
||||||
import { InMemoryNotificationRepository } from '@adapters/notifications/persistence/inmemory/InMemoryNotificationRepository';
|
import { InMemoryNotificationRepository } from '@adapters/notifications/persistence/inmemory/InMemoryNotificationRepository';
|
||||||
@@ -24,13 +24,13 @@ export const NOTIFICATION_GATEWAY_REGISTRY_TOKEN = 'INotificationGatewayRegistry
|
|||||||
providers: [
|
providers: [
|
||||||
{
|
{
|
||||||
provide: NOTIFICATION_REPOSITORY_TOKEN,
|
provide: NOTIFICATION_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): INotificationRepository =>
|
useFactory: (logger: Logger): NotificationRepository =>
|
||||||
new InMemoryNotificationRepository(logger),
|
new InMemoryNotificationRepository(logger),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: NOTIFICATION_PREFERENCE_REPOSITORY_TOKEN,
|
provide: NOTIFICATION_PREFERENCE_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): INotificationPreferenceRepository =>
|
useFactory: (logger: Logger): NotificationPreferenceRepository =>
|
||||||
new InMemoryNotificationPreferenceRepository(logger),
|
new InMemoryNotificationPreferenceRepository(logger),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
@@ -43,8 +43,8 @@ export const NOTIFICATION_GATEWAY_REGISTRY_TOKEN = 'INotificationGatewayRegistry
|
|||||||
{
|
{
|
||||||
provide: NOTIFICATION_SERVICE_TOKEN,
|
provide: NOTIFICATION_SERVICE_TOKEN,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
notificationRepo: INotificationRepository,
|
notificationRepo: NotificationRepository,
|
||||||
preferenceRepo: INotificationPreferenceRepository,
|
preferenceRepo: NotificationPreferenceRepository,
|
||||||
gatewayRegistry: NotificationGatewayRegistry,
|
gatewayRegistry: NotificationGatewayRegistry,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
): NotificationService =>
|
): NotificationService =>
|
||||||
|
|||||||
@@ -2,15 +2,15 @@ import { Module } from '@nestjs/common';
|
|||||||
|
|
||||||
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
||||||
|
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import type {
|
import type {
|
||||||
IMemberPaymentRepository,
|
MemberPaymentRepository,
|
||||||
IMembershipFeeRepository,
|
MembershipFeeRepository,
|
||||||
} from '@core/payments/domain/repositories/MembershipFeeRepository';
|
} from '@core/payments/domain/repositories/MembershipFeeRepository';
|
||||||
import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
|
import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
|
||||||
import type { IPrizeRepository } from '@core/payments/domain/repositories/PrizeRepository';
|
import type { PrizeRepository } from '@core/payments/domain/repositories/PrizeRepository';
|
||||||
import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/WalletRepository';
|
import type { TransactionRepository, WalletRepository } from '@core/payments/domain/repositories/WalletRepository';
|
||||||
|
|
||||||
import { InMemoryMemberPaymentRepository, InMemoryMembershipFeeRepository } from '@adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository';
|
import { InMemoryMemberPaymentRepository, InMemoryMembershipFeeRepository } from '@adapters/payments/persistence/inmemory/InMemoryMembershipFeeRepository';
|
||||||
import { InMemoryPaymentRepository } from '@adapters/payments/persistence/inmemory/InMemoryPaymentRepository';
|
import { InMemoryPaymentRepository } from '@adapters/payments/persistence/inmemory/InMemoryPaymentRepository';
|
||||||
@@ -31,32 +31,32 @@ import {
|
|||||||
providers: [
|
providers: [
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_PAYMENT_REPOSITORY_TOKEN,
|
provide: PAYMENTS_PAYMENT_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): IPaymentRepository => new InMemoryPaymentRepository(logger),
|
useFactory: (logger: Logger): PaymentRepository => new InMemoryPaymentRepository(logger),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_MEMBERSHIP_FEE_REPOSITORY_TOKEN,
|
provide: PAYMENTS_MEMBERSHIP_FEE_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): IMembershipFeeRepository => new InMemoryMembershipFeeRepository(logger),
|
useFactory: (logger: Logger): MembershipFeeRepository => new InMemoryMembershipFeeRepository(logger),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_MEMBER_PAYMENT_REPOSITORY_TOKEN,
|
provide: PAYMENTS_MEMBER_PAYMENT_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): IMemberPaymentRepository => new InMemoryMemberPaymentRepository(logger),
|
useFactory: (logger: Logger): MemberPaymentRepository => new InMemoryMemberPaymentRepository(logger),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_PRIZE_REPOSITORY_TOKEN,
|
provide: PAYMENTS_PRIZE_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): IPrizeRepository => new InMemoryPrizeRepository(logger),
|
useFactory: (logger: Logger): PrizeRepository => new InMemoryPrizeRepository(logger),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_WALLET_REPOSITORY_TOKEN,
|
provide: PAYMENTS_WALLET_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): IWalletRepository => new InMemoryWalletRepository(logger),
|
useFactory: (logger: Logger): WalletRepository => new InMemoryWalletRepository(logger),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_TRANSACTION_REPOSITORY_TOKEN,
|
provide: PAYMENTS_TRANSACTION_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): ITransactionRepository => new InMemoryTransactionRepository(logger),
|
useFactory: (logger: Logger): TransactionRepository => new InMemoryTransactionRepository(logger),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
|
|||||||
|
|
||||||
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
||||||
|
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
|
import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
|
||||||
import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
|
import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ import { Module } from '@nestjs/common';
|
|||||||
|
|
||||||
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
||||||
|
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import type { IFeedRepository } from '@core/social/domain/repositories/FeedRepository';
|
import type { FeedRepository } from '@core/social/domain/repositories/FeedRepository';
|
||||||
import type { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
|
import type { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
InMemoryFeedRepository,
|
InMemoryFeedRepository,
|
||||||
@@ -19,13 +19,13 @@ import { SOCIAL_FEED_REPOSITORY_TOKEN, SOCIAL_GRAPH_REPOSITORY_TOKEN } from '../
|
|||||||
providers: [
|
providers: [
|
||||||
{
|
{
|
||||||
provide: SOCIAL_FEED_REPOSITORY_TOKEN,
|
provide: SOCIAL_FEED_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): IFeedRepository =>
|
useFactory: (logger: Logger): FeedRepository =>
|
||||||
new InMemoryFeedRepository(logger, { drivers: [], friendships: [], feedEvents: [] }),
|
new InMemoryFeedRepository(logger, { drivers: [], friendships: [], feedEvents: [] }),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: SOCIAL_GRAPH_REPOSITORY_TOKEN,
|
provide: SOCIAL_GRAPH_REPOSITORY_TOKEN,
|
||||||
useFactory: (logger: Logger): ISocialGraphRepository =>
|
useFactory: (logger: Logger): SocialGraphRepository =>
|
||||||
new InMemorySocialGraphRepository(logger, { drivers: [], friendships: [], feedEvents: [] }),
|
new InMemorySocialGraphRepository(logger, { drivers: [], friendships: [], feedEvents: [] }),
|
||||||
inject: ['Logger'],
|
inject: ['Logger'],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
import { Module } from '@nestjs/common';
|
import { Module } from '@nestjs/common';
|
||||||
import { TypeOrmModule, getDataSourceToken } from '@nestjs/typeorm';
|
import { TypeOrmModule, getDataSourceToken } from '@nestjs/typeorm';
|
||||||
import type { DataSource } from 'typeorm';
|
import type { DataSource } from 'typeorm';
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import type { DataSource } from 'typeorm';
|
|||||||
|
|
||||||
import type { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway';
|
import type { NotificationGatewayRegistry } from '@core/notifications/application/ports/NotificationGateway';
|
||||||
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';
|
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';
|
||||||
import type { INotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository';
|
import type { NotificationPreferenceRepository } from '@core/notifications/domain/repositories/NotificationPreferenceRepository';
|
||||||
import type { INotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository';
|
import type { NotificationRepository } from '@core/notifications/domain/repositories/NotificationRepository';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
import { NotificationOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationOrmEntity';
|
import { NotificationOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationOrmEntity';
|
||||||
import { NotificationPreferenceOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationPreferenceOrmEntity';
|
import { NotificationPreferenceOrmEntity } from '@adapters/notifications/persistence/typeorm/entities/NotificationPreferenceOrmEntity';
|
||||||
@@ -58,8 +58,8 @@ const typeOrmFeatureImports = [
|
|||||||
{
|
{
|
||||||
provide: NOTIFICATION_SERVICE_TOKEN,
|
provide: NOTIFICATION_SERVICE_TOKEN,
|
||||||
useFactory: (
|
useFactory: (
|
||||||
notificationRepo: INotificationRepository,
|
notificationRepo: NotificationRepository,
|
||||||
preferenceRepo: INotificationPreferenceRepository,
|
preferenceRepo: NotificationPreferenceRepository,
|
||||||
gatewayRegistry: NotificationGatewayRegistry,
|
gatewayRegistry: NotificationGatewayRegistry,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
): NotificationService =>
|
): NotificationService =>
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ import type { DataSource } from 'typeorm';
|
|||||||
|
|
||||||
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
import { LoggingModule } from '../../domain/logging/LoggingModule';
|
||||||
|
|
||||||
import type { IMemberPaymentRepository, IMembershipFeeRepository } from '@core/payments/domain/repositories/MembershipFeeRepository';
|
import type { MemberPaymentRepository, MembershipFeeRepository } from '@core/payments/domain/repositories/MembershipFeeRepository';
|
||||||
import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
|
import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
|
||||||
import type { IPrizeRepository } from '@core/payments/domain/repositories/PrizeRepository';
|
import type { PrizeRepository } from '@core/payments/domain/repositories/PrizeRepository';
|
||||||
import type { ITransactionRepository, IWalletRepository } from '@core/payments/domain/repositories/WalletRepository';
|
import type { TransactionRepository, WalletRepository } from '@core/payments/domain/repositories/WalletRepository';
|
||||||
|
|
||||||
import { PaymentsMemberPaymentOrmEntity } from '@adapters/payments/persistence/typeorm/entities/PaymentsMemberPaymentOrmEntity';
|
import { PaymentsMemberPaymentOrmEntity } from '@adapters/payments/persistence/typeorm/entities/PaymentsMemberPaymentOrmEntity';
|
||||||
import { PaymentsMembershipFeeOrmEntity } from '@adapters/payments/persistence/typeorm/entities/PaymentsMembershipFeeOrmEntity';
|
import { PaymentsMembershipFeeOrmEntity } from '@adapters/payments/persistence/typeorm/entities/PaymentsMembershipFeeOrmEntity';
|
||||||
@@ -58,37 +58,37 @@ const typeOrmFeatureImports = [
|
|||||||
|
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_WALLET_REPOSITORY_TOKEN,
|
provide: PAYMENTS_WALLET_REPOSITORY_TOKEN,
|
||||||
useFactory: (dataSource: DataSource, mapper: PaymentsWalletOrmMapper): IWalletRepository =>
|
useFactory: (dataSource: DataSource, mapper: PaymentsWalletOrmMapper): WalletRepository =>
|
||||||
new TypeOrmWalletRepository(dataSource, mapper),
|
new TypeOrmWalletRepository(dataSource, mapper),
|
||||||
inject: [getDataSourceToken(), PaymentsWalletOrmMapper],
|
inject: [getDataSourceToken(), PaymentsWalletOrmMapper],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_TRANSACTION_REPOSITORY_TOKEN,
|
provide: PAYMENTS_TRANSACTION_REPOSITORY_TOKEN,
|
||||||
useFactory: (dataSource: DataSource, mapper: PaymentsWalletOrmMapper): ITransactionRepository =>
|
useFactory: (dataSource: DataSource, mapper: PaymentsWalletOrmMapper): TransactionRepository =>
|
||||||
new TypeOrmTransactionRepository(dataSource, mapper),
|
new TypeOrmTransactionRepository(dataSource, mapper),
|
||||||
inject: [getDataSourceToken(), PaymentsWalletOrmMapper],
|
inject: [getDataSourceToken(), PaymentsWalletOrmMapper],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_PAYMENT_REPOSITORY_TOKEN,
|
provide: PAYMENTS_PAYMENT_REPOSITORY_TOKEN,
|
||||||
useFactory: (dataSource: DataSource, mapper: PaymentsPaymentOrmMapper): IPaymentRepository =>
|
useFactory: (dataSource: DataSource, mapper: PaymentsPaymentOrmMapper): PaymentRepository =>
|
||||||
new TypeOrmPaymentRepository(dataSource, mapper),
|
new TypeOrmPaymentRepository(dataSource, mapper),
|
||||||
inject: [getDataSourceToken(), PaymentsPaymentOrmMapper],
|
inject: [getDataSourceToken(), PaymentsPaymentOrmMapper],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_PRIZE_REPOSITORY_TOKEN,
|
provide: PAYMENTS_PRIZE_REPOSITORY_TOKEN,
|
||||||
useFactory: (dataSource: DataSource, mapper: PaymentsPrizeOrmMapper): IPrizeRepository =>
|
useFactory: (dataSource: DataSource, mapper: PaymentsPrizeOrmMapper): PrizeRepository =>
|
||||||
new TypeOrmPrizeRepository(dataSource, mapper),
|
new TypeOrmPrizeRepository(dataSource, mapper),
|
||||||
inject: [getDataSourceToken(), PaymentsPrizeOrmMapper],
|
inject: [getDataSourceToken(), PaymentsPrizeOrmMapper],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_MEMBERSHIP_FEE_REPOSITORY_TOKEN,
|
provide: PAYMENTS_MEMBERSHIP_FEE_REPOSITORY_TOKEN,
|
||||||
useFactory: (dataSource: DataSource, mapper: PaymentsMembershipFeeOrmMapper): IMembershipFeeRepository =>
|
useFactory: (dataSource: DataSource, mapper: PaymentsMembershipFeeOrmMapper): MembershipFeeRepository =>
|
||||||
new TypeOrmMembershipFeeRepository(dataSource, mapper),
|
new TypeOrmMembershipFeeRepository(dataSource, mapper),
|
||||||
inject: [getDataSourceToken(), PaymentsMembershipFeeOrmMapper],
|
inject: [getDataSourceToken(), PaymentsMembershipFeeOrmMapper],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: PAYMENTS_MEMBER_PAYMENT_REPOSITORY_TOKEN,
|
provide: PAYMENTS_MEMBER_PAYMENT_REPOSITORY_TOKEN,
|
||||||
useFactory: (dataSource: DataSource, mapper: PaymentsMemberPaymentOrmMapper): IMemberPaymentRepository =>
|
useFactory: (dataSource: DataSource, mapper: PaymentsMemberPaymentOrmMapper): MemberPaymentRepository =>
|
||||||
new TypeOrmMemberPaymentRepository(dataSource, mapper),
|
new TypeOrmMemberPaymentRepository(dataSource, mapper),
|
||||||
inject: [getDataSourceToken(), PaymentsMemberPaymentOrmMapper],
|
inject: [getDataSourceToken(), PaymentsMemberPaymentOrmMapper],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ import { TeamMembershipOrmMapper, TeamOrmMapper } from '@adapters/racing/persist
|
|||||||
import { TeamStatsOrmMapper } from '@adapters/racing/persistence/typeorm/mappers/TeamStatsOrmMapper';
|
import { TeamStatsOrmMapper } from '@adapters/racing/persistence/typeorm/mappers/TeamStatsOrmMapper';
|
||||||
|
|
||||||
import { getPointsSystems } from '@adapters/bootstrap/PointsSystems';
|
import { getPointsSystems } from '@adapters/bootstrap/PointsSystems';
|
||||||
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP/Logger';
|
import type { Logger } from '@core/shared/domain/Logger';
|
||||||
|
|
||||||
const RACING_POINTS_SYSTEMS_TOKEN = 'RACING_POINTS_SYSTEMS_TOKEN';
|
const RACING_POINTS_SYSTEMS_TOKEN = 'RACING_POINTS_SYSTEMS_TOKEN';
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import { DatabaseModule } from '../../domain/database/DatabaseModule';
|
|||||||
import { PostgresSocialPersistenceModule } from '../postgres/PostgresSocialPersistenceModule';
|
import { PostgresSocialPersistenceModule } from '../postgres/PostgresSocialPersistenceModule';
|
||||||
import { SOCIAL_FEED_REPOSITORY_TOKEN, SOCIAL_GRAPH_REPOSITORY_TOKEN } from './SocialPersistenceTokens';
|
import { SOCIAL_FEED_REPOSITORY_TOKEN, SOCIAL_GRAPH_REPOSITORY_TOKEN } from './SocialPersistenceTokens';
|
||||||
|
|
||||||
import type { IFeedRepository } from '@core/social/domain/repositories/FeedRepository';
|
import type { FeedRepository } from '@core/social/domain/repositories/FeedRepository';
|
||||||
import type { ISocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
|
import type { SocialGraphRepository } from '@core/social/domain/repositories/SocialGraphRepository';
|
||||||
|
|
||||||
import { DriverOrmEntity } from '@adapters/racing/persistence/typeorm/entities/DriverOrmEntity';
|
import { DriverOrmEntity } from '@adapters/racing/persistence/typeorm/entities/DriverOrmEntity';
|
||||||
import { FeedItemOrmEntity } from '@adapters/social/persistence/typeorm/entities/FeedItemOrmEntity';
|
import { FeedItemOrmEntity } from '@adapters/social/persistence/typeorm/entities/FeedItemOrmEntity';
|
||||||
@@ -82,8 +82,8 @@ describe('PostgresSocialPersistenceModule (integration)', () => {
|
|||||||
|
|
||||||
await feedOrmRepo.save(item);
|
await feedOrmRepo.save(item);
|
||||||
|
|
||||||
const feedRepo = module.get<IFeedRepository>(SOCIAL_FEED_REPOSITORY_TOKEN);
|
const feedRepo = module.get<FeedRepository>(SOCIAL_FEED_REPOSITORY_TOKEN);
|
||||||
const socialGraphRepo = module.get<ISocialGraphRepository>(SOCIAL_GRAPH_REPOSITORY_TOKEN);
|
const socialGraphRepo = module.get<SocialGraphRepository>(SOCIAL_GRAPH_REPOSITORY_TOKEN);
|
||||||
|
|
||||||
const friendIds = await socialGraphRepo.getFriendIds(driverA.id);
|
const friendIds = await socialGraphRepo.getFriendIds(driverA.id);
|
||||||
expect(friendIds).toEqual([driverB.id]);
|
expect(friendIds).toEqual([driverB.id]);
|
||||||
|
|||||||
106
my_tsc_output.txt
Normal file
106
my_tsc_output.txt
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
adapters/bootstrap/SeedDemoUsers.ts(6,1): error TS6133: 'UserRepository' is declared but its value is never read.
|
||||||
|
apps/api/src/domain/analytics/AnalyticsProviders.ts(3,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/auth/AuthProviders.ts(16,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/auth/AuthService.ts(3,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/bootstrap/BootstrapModule.ts(1,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/bootstrap/BootstrapProviders.ts(8,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/dashboard/DashboardProviders.ts(11,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/dashboard/DashboardService.ts(7,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/driver/DriverProviders.ts(167,14): error TS2693: 'RankingUseCase' only refers to a type, but is being used as a value here.
|
||||||
|
apps/api/src/domain/driver/DriverProviders.ts(176,14): error TS2693: 'DriverStatsUseCase' only refers to a type, but is being used as a value here.
|
||||||
|
apps/api/src/domain/driver/DriverService.ts(33,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/league/LeagueProviders.ts(16,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/league/LeagueService.ts(61,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/media/MediaController.ts(3,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/domain/media/MediaProviders.ts(7,10): error TS2724: '"@core/media/domain/repositories/AvatarGenerationRepository"' has no exported member named 'IAvatarGenerationRepository'. Did you mean 'AvatarGenerationRepository'?
|
||||||
|
apps/api/src/domain/media/MediaProviders.ts(8,10): error TS2724: '"@core/media/domain/repositories/AvatarRepository"' has no exported member named 'IAvatarRepository'. Did you mean 'AvatarRepository'?
|
||||||
|
apps/api/src/domain/media/MediaProviders.ts(9,10): error TS2724: '"@core/media/domain/repositories/MediaRepository"' has no exported member named 'IMediaRepository'. Did you mean 'MediaRepository'?
|
||||||
|
apps/api/src/domain/media/MediaProviders.ts(11,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/media/MediaService.ts(39,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/notifications/NotificationsProviders.ts(5,10): error TS2724: '"@core/notifications/domain/repositories/NotificationRepository"' has no exported member named 'INotificationRepository'. Did you mean 'NotificationRepository'?
|
||||||
|
apps/api/src/domain/notifications/NotificationsProviders.ts(6,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/domain/payments/PaymentsProviders.ts(4,15): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMemberPaymentRepository'. Did you mean 'MemberPaymentRepository'?
|
||||||
|
apps/api/src/domain/payments/PaymentsProviders.ts(4,41): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMembershipFeeRepository'. Did you mean 'MembershipFeeRepository'?
|
||||||
|
apps/api/src/domain/payments/PaymentsProviders.ts(5,15): error TS2724: '"@core/payments/domain/repositories/PaymentRepository"' has no exported member named 'IPaymentRepository'. Did you mean 'PaymentRepository'?
|
||||||
|
apps/api/src/domain/payments/PaymentsProviders.ts(6,15): error TS2724: '"@core/payments/domain/repositories/PrizeRepository"' has no exported member named 'IPrizeRepository'. Did you mean 'PrizeRepository'?
|
||||||
|
apps/api/src/domain/payments/PaymentsProviders.ts(7,15): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'ITransactionRepository'. Did you mean 'TransactionRepository'?
|
||||||
|
apps/api/src/domain/payments/PaymentsProviders.ts(7,39): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'IWalletRepository'. Did you mean 'WalletRepository'?
|
||||||
|
apps/api/src/domain/payments/PaymentsService.ts(1,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/domain/protests/ProtestsProviders.ts(4,15): error TS2724: '"@core/racing/domain/repositories/LeagueMembershipRepository"' has no exported member named 'ILeagueMembershipRepository'. Did you mean 'LeagueMembershipRepository'?
|
||||||
|
apps/api/src/domain/protests/ProtestsProviders.ts(5,15): error TS2724: '"@core/racing/domain/repositories/ProtestRepository"' has no exported member named 'IProtestRepository'. Did you mean 'ProtestRepository'?
|
||||||
|
apps/api/src/domain/protests/ProtestsProviders.ts(6,15): error TS2724: '"@core/racing/domain/repositories/RaceRepository"' has no exported member named 'IRaceRepository'. Did you mean 'RaceRepository'?
|
||||||
|
apps/api/src/domain/protests/ProtestsProviders.ts(7,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/domain/protests/ProtestsService.test.ts(6,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/domain/protests/ProtestsService.ts(1,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/domain/race/presenters/RaceDetailPresenter.ts(2,15): error TS2724: '"@core/racing/application/ports/ImageServicePort"' has no exported member named 'IImageServicePort'. Did you mean 'ImageServicePort'?
|
||||||
|
apps/api/src/domain/race/presenters/RacePenaltiesPresenter.ts(15,74): error TS2352: Conversion of type '{ id: PenaltyId; driverId: string; type: string; value: number; reason: string; issuedBy: string; issuedAt: string; notes: string | undefined; }' to type 'RacePenaltyDTO' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
|
||||||
|
Types of property 'id' are incompatible.
|
||||||
|
Type 'PenaltyId' is not comparable to type 'string'.
|
||||||
|
apps/api/src/domain/race/presenters/RaceResultsDetailPresenter.ts(1,15): error TS2724: '"@core/racing/application/ports/ImageServicePort"' has no exported member named 'IImageServicePort'. Did you mean 'ImageServicePort'?
|
||||||
|
apps/api/src/domain/race/RaceProviders.ts(5,15): error TS2724: '"@core/racing/domain/repositories/DriverRepository"' has no exported member named 'IDriverRepository'. Did you mean 'DriverRepository'?
|
||||||
|
apps/api/src/domain/race/RaceProviders.ts(6,15): error TS2724: '"@core/racing/domain/repositories/LeagueMembershipRepository"' has no exported member named 'ILeagueMembershipRepository'. Did you mean 'LeagueMembershipRepository'?
|
||||||
|
apps/api/src/domain/race/RaceProviders.ts(7,15): error TS2724: '"@core/racing/domain/repositories/LeagueRepository"' has no exported member named 'ILeagueRepository'. Did you mean 'LeagueRepository'?
|
||||||
|
apps/api/src/domain/race/RaceProviders.ts(8,15): error TS2724: '"@core/racing/domain/repositories/PenaltyRepository"' has no exported member named 'IPenaltyRepository'. Did you mean 'PenaltyRepository'?
|
||||||
|
apps/api/src/domain/race/RaceProviders.ts(9,15): error TS2724: '"@core/racing/domain/repositories/ProtestRepository"' has no exported member named 'IProtestRepository'. Did you mean 'ProtestRepository'?
|
||||||
|
apps/api/src/domain/race/RaceProviders.ts(10,15): error TS2724: '"@core/racing/domain/repositories/RaceRegistrationRepository"' has no exported member named 'IRaceRegistrationRepository'. Did you mean 'RaceRegistrationRepository'?
|
||||||
|
apps/api/src/domain/race/RaceProviders.ts(11,15): error TS2724: '"@core/racing/domain/repositories/RaceRepository"' has no exported member named 'IRaceRepository'. Did you mean 'RaceRepository'?
|
||||||
|
apps/api/src/domain/race/RaceProviders.ts(12,15): error TS2724: '"@core/racing/domain/repositories/ResultRepository"' has no exported member named 'IResultRepository'. Did you mean 'ResultRepository'?
|
||||||
|
apps/api/src/domain/race/RaceProviders.ts(13,15): error TS2724: '"@core/racing/domain/repositories/StandingRepository"' has no exported member named 'IStandingRepository'. Did you mean 'StandingRepository'?
|
||||||
|
apps/api/src/domain/race/RaceProviders.ts(14,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/domain/race/RaceService.ts(11,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(6,15): error TS2724: '"@core/payments/domain/repositories/PaymentRepository"' has no exported member named 'IPaymentRepository'. Did you mean 'PaymentRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(7,15): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'IWalletRepository'. Did you mean 'WalletRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(8,10): error TS2724: '"@core/racing/domain/repositories/LeagueMembershipRepository"' has no exported member named 'ILeagueMembershipRepository'. Did you mean 'LeagueMembershipRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(9,10): error TS2724: '"@core/racing/domain/repositories/LeagueRepository"' has no exported member named 'ILeagueRepository'. Did you mean 'LeagueRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(10,10): error TS2724: '"@core/racing/domain/repositories/LeagueWalletRepository"' has no exported member named 'ILeagueWalletRepository'. Did you mean 'LeagueWalletRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(11,10): error TS2724: '"@core/racing/domain/repositories/RaceRepository"' has no exported member named 'IRaceRepository'. Did you mean 'RaceRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(12,10): error TS2724: '"@core/racing/domain/repositories/SeasonRepository"' has no exported member named 'ISeasonRepository'. Did you mean 'SeasonRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(13,10): error TS2724: '"@core/racing/domain/repositories/SeasonSponsorshipRepository"' has no exported member named 'ISeasonSponsorshipRepository'. Did you mean 'SeasonSponsorshipRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(14,10): error TS2724: '"@core/racing/domain/repositories/SponsorRepository"' has no exported member named 'ISponsorRepository'. Did you mean 'SponsorRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(15,10): error TS2724: '"@core/racing/domain/repositories/SponsorshipPricingRepository"' has no exported member named 'ISponsorshipPricingRepository'. Did you mean 'SponsorshipPricingRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(16,10): error TS2724: '"@core/racing/domain/repositories/SponsorshipRequestRepository"' has no exported member named 'ISponsorshipRequestRepository'. Did you mean 'SponsorshipRequestRepository'?
|
||||||
|
apps/api/src/domain/sponsor/SponsorProviders.ts(17,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/sponsor/SponsorService.test.ts(13,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/sponsor/SponsorService.ts(38,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/domain/team/TeamProviders.ts(33,15): error TS2724: '"@core/racing/domain/repositories/DriverRepository"' has no exported member named 'IDriverRepository'. Did you mean 'DriverRepository'?
|
||||||
|
apps/api/src/domain/team/TeamProviders.ts(34,15): error TS2724: '"@core/racing/domain/repositories/TeamMembershipRepository"' has no exported member named 'ITeamMembershipRepository'. Did you mean 'TeamMembershipRepository'?
|
||||||
|
apps/api/src/domain/team/TeamProviders.ts(35,15): error TS2724: '"@core/racing/domain/repositories/TeamRepository"' has no exported member named 'ITeamRepository'. Did you mean 'TeamRepository'?
|
||||||
|
apps/api/src/domain/team/TeamProviders.ts(36,15): error TS2724: '"@core/racing/domain/repositories/TeamStatsRepository"' has no exported member named 'ITeamStatsRepository'. Did you mean 'TeamStatsRepository'?
|
||||||
|
apps/api/src/domain/team/TeamProviders.ts(37,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/domain/team/TeamService.test.ts(9,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/domain/team/TeamService.ts(14,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/persistence/achievement/AchievementPersistenceModule.test.ts(1,15): error TS2724: '"@core/identity/domain/repositories/AchievementRepository"' has no exported member named 'IAchievementRepository'. Did you mean 'AchievementRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryAchievementPersistenceModule.ts(5,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryAnalyticsPersistenceModule.ts(5,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryIdentityPersistenceModule.ts(7,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts(7,15): error TS2724: '"@core/media/domain/repositories/AvatarGenerationRepository"' has no exported member named 'IAvatarGenerationRepository'. Did you mean 'AvatarGenerationRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts(8,15): error TS2724: '"@core/media/domain/repositories/AvatarRepository"' has no exported member named 'IAvatarRepository'. Did you mean 'AvatarRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryMediaPersistenceModule.ts(9,15): error TS2724: '"@core/media/domain/repositories/MediaRepository"' has no exported member named 'IMediaRepository'. Did you mean 'MediaRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts(9,15): error TS2724: '"@core/notifications/domain/repositories/NotificationPreferenceRepository"' has no exported member named 'INotificationPreferenceRepository'. Did you mean 'NotificationPreferenceRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryNotificationsPersistenceModule.ts(10,15): error TS2724: '"@core/notifications/domain/repositories/NotificationRepository"' has no exported member named 'INotificationRepository'. Did you mean 'NotificationRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(8,5): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMemberPaymentRepository'. Did you mean 'MemberPaymentRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(9,5): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMembershipFeeRepository'. Did you mean 'MembershipFeeRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(11,15): error TS2724: '"@core/payments/domain/repositories/PaymentRepository"' has no exported member named 'IPaymentRepository'. Did you mean 'PaymentRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(12,15): error TS2724: '"@core/payments/domain/repositories/PrizeRepository"' has no exported member named 'IPrizeRepository'. Did you mean 'PrizeRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(13,15): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'ITransactionRepository'. Did you mean 'TransactionRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryPaymentsPersistenceModule.ts(13,39): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'IWalletRepository'. Did you mean 'WalletRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemoryRacingPersistenceModule.ts(5,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts(5,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts(7,15): error TS2724: '"@core/social/domain/repositories/FeedRepository"' has no exported member named 'IFeedRepository'. Did you mean 'FeedRepository'?
|
||||||
|
apps/api/src/persistence/inmemory/InMemorySocialPersistenceModule.ts(8,15): error TS2724: '"@core/social/domain/repositories/SocialGraphRepository"' has no exported member named 'ISocialGraphRepository'. Did you mean 'SocialGraphRepository'?
|
||||||
|
apps/api/src/persistence/postgres/PostgresIdentityPersistenceModule.ts(1,15): error TS2305: Module '"@core/shared/application/UseCaseOutputPort"' has no exported member 'Logger'.
|
||||||
|
apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts(7,15): error TS2724: '"@core/notifications/domain/repositories/NotificationPreferenceRepository"' has no exported member named 'INotificationPreferenceRepository'. Did you mean 'NotificationPreferenceRepository'?
|
||||||
|
apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts(8,15): error TS2724: '"@core/notifications/domain/repositories/NotificationRepository"' has no exported member named 'INotificationRepository'. Did you mean 'NotificationRepository'?
|
||||||
|
apps/api/src/persistence/postgres/PostgresNotificationsPersistenceModule.ts(9,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(7,15): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMemberPaymentRepository'. Did you mean 'MemberPaymentRepository'?
|
||||||
|
apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(7,41): error TS2724: '"@core/payments/domain/repositories/MembershipFeeRepository"' has no exported member named 'IMembershipFeeRepository'. Did you mean 'MembershipFeeRepository'?
|
||||||
|
apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(8,15): error TS2724: '"@core/payments/domain/repositories/PaymentRepository"' has no exported member named 'IPaymentRepository'. Did you mean 'PaymentRepository'?
|
||||||
|
apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(9,15): error TS2724: '"@core/payments/domain/repositories/PrizeRepository"' has no exported member named 'IPrizeRepository'. Did you mean 'PrizeRepository'?
|
||||||
|
apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(10,15): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'ITransactionRepository'. Did you mean 'TransactionRepository'?
|
||||||
|
apps/api/src/persistence/postgres/PostgresPaymentsPersistenceModule.ts(10,39): error TS2724: '"@core/payments/domain/repositories/WalletRepository"' has no exported member named 'IWalletRepository'. Did you mean 'WalletRepository'?
|
||||||
|
apps/api/src/persistence/postgres/PostgresRacingPersistenceModule.ts(116,29): error TS2307: Cannot find module '@core/shared/application/UseCaseOutputPort/Logger' or its corresponding type declarations.
|
||||||
|
apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts(13,15): error TS2724: '"@core/social/domain/repositories/FeedRepository"' has no exported member named 'IFeedRepository'. Did you mean 'FeedRepository'?
|
||||||
|
apps/api/src/persistence/social/PostgresSocialPersistence.integration.test.ts(14,15): error TS2724: '"@core/social/domain/repositories/SocialGraphRepository"' has no exported member named 'ISocialGraphRepository'. Did you mean 'SocialGraphRepository'?
|
||||||
Reference in New Issue
Block a user