website refactor

This commit is contained in:
2026-01-16 23:30:55 +01:00
parent 9edf64130f
commit b22c705674
86 changed files with 407 additions and 301 deletions

View File

@@ -3,18 +3,18 @@ import { SponsorService } from './SponsorService';
// Import core interfaces
import type { NotificationService } from '@core/notifications/application/ports/NotificationService';
import type { IPaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
import type { IWalletRepository } from '@core/payments/domain/repositories/WalletRepository';
import { ILeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import { ILeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import { ILeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository';
import { IRaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import { ISeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import { ISponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
import { ISponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
import { ISponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
import type { Logger } from '@core/shared/application/UseCaseOutputPort/UseCaseOutputPort/UseCaseOutputPort_TEMP_TEMP';
import type { PaymentRepository } from '@core/payments/domain/repositories/PaymentRepository';
import type { WalletRepository } from '@core/payments/domain/repositories/WalletRepository';
import { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
import { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
import { LeagueWalletRepository } from '@core/racing/domain/repositories/LeagueWalletRepository';
import { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
import { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
import { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
import { SponsorshipPricingRepository } from '@core/racing/domain/repositories/SponsorshipPricingRepository';
import { SponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
import type { Logger } from '@core/shared/domain/Logger';
import { GetSponsorBillingUseCase } from '@core/payments/application/use-cases/GetSponsorBillingUseCase';
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';
// Define injection tokens
export const SPONSOR_REPOSITORY_TOKEN = 'ISponsorRepository';
export const SEASON_SPONSORSHIP_REPOSITORY_TOKEN = 'ISeasonSponsorshipRepository';
export const SEASON_REPOSITORY_TOKEN = 'ISeasonRepository';
export const LEAGUE_REPOSITORY_TOKEN = 'ILeagueRepository';
export const LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN = 'ILeagueMembershipRepository';
export const RACE_REPOSITORY_TOKEN = 'IRaceRepository';
export const SPONSORSHIP_PRICING_REPOSITORY_TOKEN = 'ISponsorshipPricingRepository';
export const SPONSORSHIP_REQUEST_REPOSITORY_TOKEN = 'ISponsorshipRequestRepository';
export const PAYMENT_REPOSITORY_TOKEN = 'IPaymentRepository';
export const WALLET_REPOSITORY_TOKEN = 'IWalletRepository';
export const LEAGUE_WALLET_REPOSITORY_TOKEN = 'ILeagueWalletRepository';
export const NOTIFICATION_SERVICE_TOKEN = 'INotificationService';
export const SPONSOR_REPOSITORY_TOKEN = 'SponsorRepository';
export const SEASON_SPONSORSHIP_REPOSITORY_TOKEN = 'SeasonSponsorshipRepository';
export const SEASON_REPOSITORY_TOKEN = 'SeasonRepository';
export const LEAGUE_REPOSITORY_TOKEN = 'LeagueRepository';
export const LEAGUE_MEMBERSHIP_REPOSITORY_TOKEN = 'LeagueMembershipRepository';
export const RACE_REPOSITORY_TOKEN = 'RaceRepository';
export const SPONSORSHIP_PRICING_REPOSITORY_TOKEN = 'SponsorshipPricingRepository';
export const SPONSORSHIP_REQUEST_REPOSITORY_TOKEN = 'SponsorshipRequestRepository';
export const PAYMENT_REPOSITORY_TOKEN = 'PaymentRepository';
export const WALLET_REPOSITORY_TOKEN = 'WalletRepository';
export const LEAGUE_WALLET_REPOSITORY_TOKEN = 'LeagueWalletRepository';
export const NOTIFICATION_SERVICE_TOKEN = 'NotificationService';
export const LOGGER_TOKEN = 'Logger';
// Use case / application service tokens
@@ -88,23 +88,23 @@ export const SponsorProviders: Provider[] = [
// Use cases
{
provide: GET_SPONSORS_USE_CASE_TOKEN,
useFactory: (sponsorRepo: ISponsorRepository) => new GetSponsorsUseCase(sponsorRepo),
useFactory: (sponsorRepo: SponsorRepository) => new GetSponsorsUseCase(sponsorRepo),
inject: [SPONSOR_REPOSITORY_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],
},
{
provide: GET_SPONSOR_DASHBOARD_USE_CASE_TOKEN,
useFactory: (
sponsorRepo: ISponsorRepository,
seasonSponsorshipRepo: ISeasonSponsorshipRepository,
seasonRepo: ISeasonRepository,
leagueRepo: ILeagueRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
raceRepo: IRaceRepository,
sponsorRepo: SponsorRepository,
seasonSponsorshipRepo: SeasonSponsorshipRepository,
seasonRepo: SeasonRepository,
leagueRepo: LeagueRepository,
leagueMembershipRepo: LeagueMembershipRepository,
raceRepo: RaceRepository,
) => new GetSponsorDashboardUseCase(sponsorRepo, seasonSponsorshipRepo, seasonRepo, leagueRepo, leagueMembershipRepo, raceRepo),
inject: [
SPONSOR_REPOSITORY_TOKEN,
@@ -118,12 +118,12 @@ export const SponsorProviders: Provider[] = [
{
provide: GET_SPONSOR_SPONSORSHIPS_USE_CASE_TOKEN,
useFactory: (
sponsorRepo: ISponsorRepository,
seasonSponsorshipRepo: ISeasonSponsorshipRepository,
seasonRepo: ISeasonRepository,
leagueRepo: ILeagueRepository,
leagueMembershipRepo: ILeagueMembershipRepository,
raceRepo: IRaceRepository,
sponsorRepo: SponsorRepository,
seasonSponsorshipRepo: SeasonSponsorshipRepository,
seasonRepo: SeasonRepository,
leagueRepo: LeagueRepository,
leagueMembershipRepo: LeagueMembershipRepository,
raceRepo: RaceRepository,
) => new GetSponsorSponsorshipsUseCase(sponsorRepo, seasonSponsorshipRepo, seasonRepo, leagueRepo, leagueMembershipRepo, raceRepo),
inject: [
SPONSOR_REPOSITORY_TOKEN,
@@ -137,8 +137,8 @@ export const SponsorProviders: Provider[] = [
{
provide: GET_SPONSOR_BILLING_USE_CASE_TOKEN,
useFactory: (
paymentRepo: IPaymentRepository,
seasonSponsorshipRepo: ISeasonSponsorshipRepository,
paymentRepo: PaymentRepository,
seasonSponsorshipRepo: SeasonSponsorshipRepository,
) => {
return new GetSponsorBillingUseCase(paymentRepo, seasonSponsorshipRepo);
},
@@ -147,7 +147,7 @@ export const SponsorProviders: Provider[] = [
{
provide: GET_ENTITY_SPONSORSHIP_PRICING_USE_CASE_TOKEN,
useFactory: (
sponsorshipPricingRepo: ISponsorshipPricingRepository,
sponsorshipPricingRepo: SponsorshipPricingRepository,
logger: Logger,
) => new GetEntitySponsorshipPricingUseCase(sponsorshipPricingRepo, logger),
inject: [
@@ -157,26 +157,26 @@ export const SponsorProviders: Provider[] = [
},
{
provide: GET_SPONSOR_USE_CASE_TOKEN,
useFactory: (sponsorRepo: ISponsorRepository) => new GetSponsorUseCase(sponsorRepo),
useFactory: (sponsorRepo: SponsorRepository) => new GetSponsorUseCase(sponsorRepo),
inject: [SPONSOR_REPOSITORY_TOKEN],
},
{
provide: GET_PENDING_SPONSORSHIP_REQUESTS_USE_CASE_TOKEN,
useFactory: (
sponsorshipRequestRepo: ISponsorshipRequestRepository,
sponsorRepo: ISponsorRepository,
sponsorshipRequestRepo: SponsorshipRequestRepository,
sponsorRepo: SponsorRepository,
) => new GetPendingSponsorshipRequestsUseCase(sponsorshipRequestRepo, sponsorRepo),
inject: [SPONSORSHIP_REQUEST_REPOSITORY_TOKEN, SPONSOR_REPOSITORY_TOKEN],
},
{
provide: ACCEPT_SPONSORSHIP_REQUEST_USE_CASE_TOKEN,
useFactory: (
sponsorshipRequestRepo: ISponsorshipRequestRepository,
seasonSponsorshipRepo: ISeasonSponsorshipRepository,
seasonRepo: ISeasonRepository,
sponsorshipRequestRepo: SponsorshipRequestRepository,
seasonSponsorshipRepo: SeasonSponsorshipRepository,
seasonRepo: SeasonRepository,
notificationService: NotificationService,
walletRepository: IWalletRepository,
leagueWalletRepository: ILeagueWalletRepository,
walletRepository: WalletRepository,
leagueWalletRepository: LeagueWalletRepository,
logger: Logger,
) => {
// Create a mock payment processor function
@@ -209,7 +209,7 @@ export const SponsorProviders: Provider[] = [
{
provide: REJECT_SPONSORSHIP_REQUEST_USE_CASE_TOKEN,
useFactory: (
sponsorshipRequestRepo: ISponsorshipRequestRepository,
sponsorshipRequestRepo: SponsorshipRequestRepository,
logger: Logger,
) => new RejectSponsorshipRequestUseCase(sponsorshipRequestRepo, logger),
inject: [SPONSORSHIP_REQUEST_REPOSITORY_TOKEN, LOGGER_TOKEN],