website refactor

This commit is contained in:
2026-01-16 19:46:49 +01:00
parent 26fc726556
commit 77a923e6a3
563 changed files with 1643 additions and 2259 deletions

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { AwardPrizeUseCase, type AwardPrizeInput } from './AwardPrizeUseCase';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import { describe, expect, it, vi, type Mock } from 'vitest';
import { PrizeType, type Prize } from '../../domain/entities/Prize';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import { AwardPrizeUseCase, type AwardPrizeInput } from './AwardPrizeUseCase';
describe('AwardPrizeUseCase', () => {
let prizeRepository: { findById: Mock; update: Mock };

View File

@@ -4,11 +4,11 @@
* Awards a prize to a driver.
*/
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import type { Prize } from '../../domain/entities/Prize';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { Prize } from '../../domain/entities/Prize';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
export interface AwardPrizeInput {
prizeId: string;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { CreatePaymentUseCase, type CreatePaymentInput } from './CreatePaymentUseCase';
import { describe, expect, it, vi, type Mock } from 'vitest';
import { PayerType, PaymentStatus, PaymentType } from '../../domain/entities/Payment';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
import { PaymentType, PayerType, PaymentStatus } from '../../domain/entities/Payment';
import { CreatePaymentUseCase, type CreatePaymentInput } from './CreatePaymentUseCase';
describe('CreatePaymentUseCase', () => {
let paymentRepository: {

View File

@@ -4,12 +4,12 @@
* Creates a new payment.
*/
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
import type { Payment, PaymentType, PayerType } from '../../domain/entities/Payment';
import { PaymentStatus } from '../../domain/entities/Payment';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { PayerType, Payment, PaymentType } from '../../domain/entities/Payment';
import { PaymentStatus } from '../../domain/entities/Payment';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
export interface CreatePaymentInput {
type: PaymentType;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { CreatePrizeUseCase, type CreatePrizeInput } from './CreatePrizeUseCase';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import { describe, expect, it, vi, type Mock } from 'vitest';
import { PrizeType, type Prize } from '../../domain/entities/Prize';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import { CreatePrizeUseCase, type CreatePrizeInput } from './CreatePrizeUseCase';
describe('CreatePrizeUseCase', () => {
let prizeRepository: { findByPosition: Mock; create: Mock };

View File

@@ -4,11 +4,11 @@
* Creates a new prize.
*/
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import type { PrizeType, Prize } from '../../domain/entities/Prize';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { Prize, PrizeType } from '../../domain/entities/Prize';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
export interface CreatePrizeInput {
leagueId: string;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { DeletePrizeUseCase, type DeletePrizeInput } from './DeletePrizeUseCase';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import { describe, expect, it, vi, type Mock } from 'vitest';
import { PrizeType, type Prize } from '../../domain/entities/Prize';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import { DeletePrizeUseCase, type DeletePrizeInput } from './DeletePrizeUseCase';
describe('DeletePrizeUseCase', () => {
let prizeRepository: { findById: Mock; delete: Mock };

View File

@@ -4,10 +4,10 @@
* Deletes a prize.
*/
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
export interface DeletePrizeInput {
prizeId: string;

View File

@@ -1,6 +1,6 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { describe, expect, it, vi, type Mock } from 'vitest';
import type { MemberPaymentRepository, MembershipFeeRepository } from '../../domain/repositories/MembershipFeeRepository';
import { GetMembershipFeesUseCase, type GetMembershipFeesInput } from './GetMembershipFeesUseCase';
import type { MembershipFeeRepository, MemberPaymentRepository } from '../../domain/repositories/MembershipFeeRepository';
describe('GetMembershipFeesUseCase', () => {
let membershipFeeRepository: {

View File

@@ -4,12 +4,12 @@
* Retrieves membership fees and member payments.
*/
import type { MembershipFeeRepository, MemberPaymentRepository } from '../../domain/repositories/MembershipFeeRepository';
import type { MembershipFee } from '../../domain/entities/MembershipFee';
import type { MemberPayment } from '../../domain/entities/MemberPayment';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { MemberPayment } from '../../domain/entities/MemberPayment';
import type { MembershipFee } from '../../domain/entities/MembershipFee';
import type { MemberPaymentRepository, MembershipFeeRepository } from '../../domain/repositories/MembershipFeeRepository';
export type GetMembershipFeesErrorCode = 'INVALID_INPUT';

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { GetPaymentsUseCase, type GetPaymentsInput } from './GetPaymentsUseCase';
import { describe, expect, it, vi, type Mock } from 'vitest';
import { PayerType, PaymentType } from '../../domain/entities/Payment';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
import { PaymentType, PayerType } from '../../domain/entities/Payment';
import { GetPaymentsUseCase, type GetPaymentsInput } from './GetPaymentsUseCase';
describe('GetPaymentsUseCase', () => {
let paymentRepository: {

View File

@@ -4,11 +4,11 @@
* Retrieves payments based on filters.
*/
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
import type { Payment, PaymentType } from '../../domain/entities/Payment';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { Payment, PaymentType } from '../../domain/entities/Payment';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
export interface GetPaymentsInput {
leagueId?: string;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { GetPrizesUseCase, type GetPrizesInput } from './GetPrizesUseCase';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import { describe, expect, it, vi, type Mock } from 'vitest';
import { PrizeType, type Prize } from '../../domain/entities/Prize';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import { GetPrizesUseCase, type GetPrizesInput } from './GetPrizesUseCase';
describe('GetPrizesUseCase', () => {
let prizeRepository: {

View File

@@ -4,10 +4,10 @@
* Retrieves prizes for a league or season.
*/
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
import type { Prize } from '../../domain/entities/Prize';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { Prize } from '../../domain/entities/Prize';
import type { PrizeRepository } from '../../domain/repositories/PrizeRepository';
export interface GetPrizesInput {
leagueId: string;

View File

@@ -1,11 +1,11 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { GetSponsorBillingUseCase, type GetSponsorBillingInput } from './GetSponsorBillingUseCase';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
import type { Payment } from '../../domain/entities/Payment';
import { PaymentStatus, PaymentType, PayerType } from '../../domain/entities/Payment';
import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import { SeasonSponsorship } from '@core/racing/domain/entities/season/SeasonSponsorship';
import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import { Money } from '@core/racing/domain/value-objects/Money';
import { describe, expect, it, vi, type Mock } from 'vitest';
import type { Payment } from '../../domain/entities/Payment';
import { PayerType, PaymentStatus, PaymentType } from '../../domain/entities/Payment';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
import { GetSponsorBillingUseCase, type GetSponsorBillingInput } from './GetSponsorBillingUseCase';
describe('GetSponsorBillingUseCase', () => {
let paymentRepository: { findByFilters: Mock };

View File

@@ -1,9 +1,9 @@
import { PaymentStatus, PaymentType } from '../../domain/entities/Payment';
import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import { PaymentStatus, PaymentType } from '../../domain/entities/Payment';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
export interface SponsorBillingStats {
totalSpent: number;

View File

@@ -1,8 +1,8 @@
import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest';
import { GetWalletUseCase, type GetWalletInput } from './GetWalletUseCase';
import type { TransactionRepository, WalletRepository } from '../../domain/repositories/WalletRepository';
import type { Transaction, Wallet } from '../../domain/entities/Wallet';
import { TransactionType } from '../../domain/entities/Wallet';
import type { TransactionRepository, WalletRepository } from '../../domain/repositories/WalletRepository';
import { GetWalletUseCase, type GetWalletInput } from './GetWalletUseCase';
describe('GetWalletUseCase', () => {
let walletRepository: {

View File

@@ -4,11 +4,11 @@
* Retrieves wallet information and transactions.
*/
import type { WalletRepository, TransactionRepository } from '../../domain/repositories/WalletRepository';
import type { Wallet, Transaction } from '../../domain/entities/Wallet';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { Transaction, Wallet } from '../../domain/entities/Wallet';
import type { TransactionRepository, WalletRepository } from '../../domain/repositories/WalletRepository';
export type GetWalletErrorCode = 'INVALID_INPUT';

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { describe, expect, it, vi, type Mock } from 'vitest';
import { ReferenceType, TransactionType } from '../../domain/entities/Wallet';
import type { TransactionRepository, WalletRepository } from '../../domain/repositories/WalletRepository';
import { ProcessWalletTransactionUseCase, type ProcessWalletTransactionInput } from './ProcessWalletTransactionUseCase';
import type { WalletRepository, TransactionRepository } from '../../domain/repositories/WalletRepository';
import { TransactionType, ReferenceType } from '../../domain/entities/Wallet';
describe('ProcessWalletTransactionUseCase', () => {
let walletRepository: {

View File

@@ -4,12 +4,12 @@
* Processes a wallet transaction (deposit or withdrawal).
*/
import type { WalletRepository, TransactionRepository } from '../../domain/repositories/WalletRepository';
import type { Wallet, Transaction } from '../../domain/entities/Wallet';
import { TransactionType, ReferenceType } from '../../domain/entities/Wallet';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { Transaction, Wallet } from '../../domain/entities/Wallet';
import { ReferenceType, TransactionType } from '../../domain/entities/Wallet';
import type { TransactionRepository, WalletRepository } from '../../domain/repositories/WalletRepository';
export interface ProcessWalletTransactionInput {
leagueId: string;

View File

@@ -1,7 +1,7 @@
import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest';
import { UpdateMemberPaymentUseCase, type UpdateMemberPaymentInput } from './UpdateMemberPaymentUseCase';
import type { MembershipFeeRepository, MemberPaymentRepository } from '../../domain/repositories/MembershipFeeRepository';
import { MemberPaymentStatus, type MemberPayment } from '../../domain/entities/MemberPayment';
import type { MemberPaymentRepository, MembershipFeeRepository } from '../../domain/repositories/MembershipFeeRepository';
import { UpdateMemberPaymentUseCase, type UpdateMemberPaymentInput } from './UpdateMemberPaymentUseCase';
describe('UpdateMemberPaymentUseCase', () => {
let membershipFeeRepository: {

View File

@@ -4,12 +4,12 @@
* Updates a member payment record.
*/
import type { MembershipFeeRepository, MemberPaymentRepository } from '../../domain/repositories/MembershipFeeRepository';
import type { MemberPayment } from '../../domain/entities/MemberPayment';
import { MemberPaymentStatus } from '../../domain/entities/MemberPayment';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { MemberPayment } from '../../domain/entities/MemberPayment';
import { MemberPaymentStatus } from '../../domain/entities/MemberPayment';
import type { MemberPaymentRepository, MembershipFeeRepository } from '../../domain/repositories/MembershipFeeRepository';
const PLATFORM_FEE_RATE = 0.10;

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { UpdatePaymentStatusUseCase, type UpdatePaymentStatusInput } from './UpdatePaymentStatusUseCase';
import { describe, expect, it, vi, type Mock } from 'vitest';
import { PayerType, PaymentStatus, PaymentType } from '../../domain/entities/Payment';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
import { PaymentStatus, PaymentType, PayerType } from '../../domain/entities/Payment';
import { UpdatePaymentStatusUseCase, type UpdatePaymentStatusInput } from './UpdatePaymentStatusUseCase';
describe('UpdatePaymentStatusUseCase', () => {
let paymentRepository: {

View File

@@ -4,12 +4,12 @@
* Updates the status of a payment.
*/
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
import type { Payment } from '../../domain/entities/Payment';
import { PaymentStatus } from '../../domain/entities/Payment';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
import type { Payment } from '../../domain/entities/Payment';
import { PaymentStatus } from '../../domain/entities/Payment';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
export type UpdatePaymentStatusErrorCode = 'PAYMENT_NOT_FOUND';

View File

@@ -1,7 +1,7 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { UpsertMembershipFeeUseCase, type UpsertMembershipFeeInput } from './UpsertMembershipFeeUseCase';
import type { MembershipFeeRepository } from '../../domain/repositories/MembershipFeeRepository';
import { describe, expect, it, vi, type Mock } from 'vitest';
import { MembershipFeeType } from '../../domain/entities/MembershipFee';
import type { MembershipFeeRepository } from '../../domain/repositories/MembershipFeeRepository';
import { UpsertMembershipFeeUseCase, type UpsertMembershipFeeInput } from './UpsertMembershipFeeUseCase';
describe('UpsertMembershipFeeUseCase', () => {
let membershipFeeRepository: {

View File

@@ -4,10 +4,10 @@
* Creates or updates membership fee configuration.
*/
import type { MembershipFeeRepository } from '../../domain/repositories/MembershipFeeRepository';
import type { MembershipFeeType, MembershipFee } from '../../domain/entities/MembershipFee';
import type { UseCase } from '@core/shared/application/UseCase';
import { Result } from '@core/shared/domain/Result';
import type { MembershipFee, MembershipFeeType } from '../../domain/entities/MembershipFee';
import type { MembershipFeeRepository } from '../../domain/repositories/MembershipFeeRepository';
export interface UpsertMembershipFeeInput {
leagueId: string;