website refactor

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

View File

@@ -1 +0,0 @@
export * from './use-cases';

View File

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

View File

@@ -4,10 +4,10 @@
* Awards a prize to a driver.
*/
import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository';
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/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
export interface AwardPrizeInput {

View File

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

View File

@@ -4,11 +4,11 @@
* Creates a new payment.
*/
import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository';
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/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
export interface CreatePaymentInput {

View File

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

View File

@@ -4,10 +4,10 @@
* Creates a new prize.
*/
import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository';
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/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
export interface CreatePrizeInput {

View File

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

View File

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

View File

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

View File

@@ -4,11 +4,11 @@
* Retrieves membership fees and member payments.
*/
import type { IMembershipFeeRepository, IMemberPaymentRepository } from '../../domain/repositories/IMembershipFeeRepository';
import type { MembershipFeeRepository, IMemberPaymentRepository } 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/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
export type GetMembershipFeesErrorCode = 'INVALID_INPUT';

View File

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

View File

@@ -4,10 +4,10 @@
* Retrieves payments based on filters.
*/
import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository';
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/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
export interface GetPaymentsInput {

View File

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

View File

@@ -4,10 +4,10 @@
* Retrieves prizes for a league or season.
*/
import type { IPrizeRepository } from '../../domain/repositories/IPrizeRepository';
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/application/Result';
import { Result } from '@core/shared/domain/Result';
export interface GetPrizesInput {
leagueId: string;

View File

@@ -1,9 +1,9 @@
import { describe, it, expect, vi, type Mock } from 'vitest';
import { GetSponsorBillingUseCase, type GetSponsorBillingInput } from './GetSponsorBillingUseCase';
import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository';
import type { PaymentRepository } from '../../domain/repositories/PaymentRepository';
import type { Payment } from '../../domain/entities/Payment';
import { PaymentStatus, PaymentType, PayerType } from '../../domain/entities/Payment';
import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository';
import type { SeasonSponsorshipRepository } from '@core/racing/domain/repositories/SeasonSponsorshipRepository';
import { SeasonSponsorship } from '@core/racing/domain/entities/season/SeasonSponsorship';
import { Money } from '@core/racing/domain/value-objects/Money';

View File

@@ -1,8 +1,8 @@
import { PaymentStatus, PaymentType } from '../../domain/entities/Payment';
import type { ISeasonSponsorshipRepository } from '@core/racing/domain/repositories/ISeasonSponsorshipRepository';
import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository';
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/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
export interface SponsorBillingStats {

View File

@@ -1,6 +1,6 @@
import { beforeEach, describe, expect, it, vi, type Mock } from 'vitest';
import { GetWalletUseCase, type GetWalletInput } from './GetWalletUseCase';
import type { ITransactionRepository, IWalletRepository } from '../../domain/repositories/IWalletRepository';
import type { TransactionRepository, IWalletRepository } from '../../domain/repositories/WalletRepository';
import type { Transaction, Wallet } from '../../domain/entities/Wallet';
import { TransactionType } from '../../domain/entities/Wallet';

View File

@@ -4,10 +4,10 @@
* Retrieves wallet information and transactions.
*/
import type { IWalletRepository, ITransactionRepository } from '../../domain/repositories/IWalletRepository';
import type { WalletRepository, ITransactionRepository } 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/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
export type GetWalletErrorCode = 'INVALID_INPUT';

View File

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

View File

@@ -4,11 +4,11 @@
* Processes a wallet transaction (deposit or withdrawal).
*/
import type { IWalletRepository, ITransactionRepository } from '../../domain/repositories/IWalletRepository';
import type { WalletRepository, ITransactionRepository } 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/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
export interface ProcessWalletTransactionInput {

View File

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

View File

@@ -4,11 +4,11 @@
* Updates a member payment record.
*/
import type { IMembershipFeeRepository, IMemberPaymentRepository } from '../../domain/repositories/IMembershipFeeRepository';
import type { MembershipFeeRepository, IMemberPaymentRepository } 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/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
const PLATFORM_FEE_RATE = 0.10;

View File

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

View File

@@ -4,11 +4,11 @@
* Updates the status of a payment.
*/
import type { IPaymentRepository } from '../../domain/repositories/IPaymentRepository';
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/application/Result';
import { Result } from '@core/shared/domain/Result';
import type { ApplicationErrorCode } from '@core/shared/errors/ApplicationErrorCode';
export type UpdatePaymentStatusErrorCode = 'PAYMENT_NOT_FOUND';

View File

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

View File

@@ -4,10 +4,10 @@
* Creates or updates membership fee configuration.
*/
import type { IMembershipFeeRepository } from '../../domain/repositories/IMembershipFeeRepository';
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/application/Result';
import { Result } from '@core/shared/domain/Result';
export interface UpsertMembershipFeeInput {
leagueId: string;

View File

@@ -1,13 +0,0 @@
export * from './AwardPrizeUseCase';
export * from './CreatePaymentUseCase';
export * from './CreatePrizeUseCase';
export * from './DeletePrizeUseCase';
export * from './GetMembershipFeesUseCase';
export * from './GetPaymentsUseCase';
export * from './GetPrizesUseCase';
export * from './GetSponsorBillingUseCase';
export * from './GetWalletUseCase';
export * from './ProcessWalletTransactionUseCase';
export * from './UpdateMemberPaymentUseCase';
export * from './UpdatePaymentStatusUseCase';
export * from './UpsertMembershipFeeUseCase';

View File

@@ -1,5 +0,0 @@
export * from './Payment';
export * from './MembershipFee';
export * from './MemberPayment';
export * from './Prize';
export * from './Wallet';

View File

@@ -1,2 +0,0 @@
export * from './entities';
export * from './repositories';

View File

@@ -5,14 +5,14 @@
import type { MembershipFee } from '../entities/MembershipFee';
import type { MemberPayment } from '../entities/MemberPayment';
export interface IMembershipFeeRepository {
export interface MembershipFeeRepository {
findById(id: string): Promise<MembershipFee | null>;
findByLeagueId(leagueId: string): Promise<MembershipFee | null>;
create(fee: MembershipFee): Promise<MembershipFee>;
update(fee: MembershipFee): Promise<MembershipFee>;
}
export interface IMemberPaymentRepository {
export interface MemberPaymentRepository {
findById(id: string): Promise<MemberPayment | null>;
findByFeeIdAndDriverId(feeId: string, driverId: string): Promise<MemberPayment | null>;
findByLeagueIdAndDriverId(leagueId: string, driverId: string, membershipFeeRepo: IMembershipFeeRepository): Promise<MemberPayment[]>;

View File

@@ -4,7 +4,7 @@
import type { Payment, PaymentType } from '../entities/Payment';
export interface IPaymentRepository {
export interface PaymentRepository {
findById(id: string): Promise<Payment | null>;
findByLeagueId(leagueId: string): Promise<Payment[]>;
findByPayerId(payerId: string): Promise<Payment[]>;

View File

@@ -4,7 +4,7 @@
import type { Prize } from '../entities/Prize';
export interface IPrizeRepository {
export interface PrizeRepository {
findById(id: string): Promise<Prize | null>;
findByLeagueId(leagueId: string): Promise<Prize[]>;
findByLeagueIdAndSeasonId(leagueId: string, seasonId: string): Promise<Prize[]>;

View File

@@ -4,14 +4,14 @@
import type { Wallet, Transaction } from '../entities/Wallet';
export interface IWalletRepository {
export interface WalletRepository {
findById(id: string): Promise<Wallet | null>;
findByLeagueId(leagueId: string): Promise<Wallet | null>;
create(wallet: Wallet): Promise<Wallet>;
update(wallet: Wallet): Promise<Wallet>;
}
export interface ITransactionRepository {
export interface TransactionRepository {
findById(id: string): Promise<Transaction | null>;
findByWalletId(walletId: string): Promise<Transaction[]>;
create(transaction: Transaction): Promise<Transaction>;

View File

@@ -1,4 +0,0 @@
export * from './IPaymentRepository';
export * from './IMembershipFeeRepository';
export * from './IPrizeRepository';
export * from './IWalletRepository';

View File

@@ -1,2 +0,0 @@
export * from './domain';
export * from './application';