website refactor

This commit is contained in:
2026-01-16 15:20:25 +01:00
parent 7e02fc3ea5
commit 37b1aa626c
325 changed files with 2167 additions and 2782 deletions

View File

@@ -1,56 +1,56 @@
import { Provider } from '@nestjs/common';
// Import core interfaces
import { IAvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository';
import { IMediaRepository } from '@core/media/domain/repositories/MediaRepository';
import { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository';
import { FaceValidationPort } from '@core/media/application/ports/FaceValidationPort';
import { AvatarGenerationPort } from '@core/media/application/ports/AvatarGenerationPort';
import { FaceValidationPort } from '@core/media/application/ports/FaceValidationPort';
import { MediaStoragePort } from '@core/media/application/ports/MediaStoragePort';
import type { Logger } from '@core/shared/application';
import { IAvatarGenerationRepository } from '@core/media/domain/repositories/AvatarGenerationRepository';
import { IAvatarRepository } from '@core/media/domain/repositories/AvatarRepository';
import { IMediaRepository } from '@core/media/domain/repositories/MediaRepository';
import type { MediaResolverPort } from '@core/ports/media/MediaResolverPort';
import type { Logger } from '@core/shared/domain/Logger';
// Import use cases
import { RequestAvatarGenerationUseCase } from '@core/media/application/use-cases/RequestAvatarGenerationUseCase';
import { UploadMediaUseCase } from '@core/media/application/use-cases/UploadMediaUseCase';
import { GetMediaUseCase } from '@core/media/application/use-cases/GetMediaUseCase';
import { DeleteMediaUseCase } from '@core/media/application/use-cases/DeleteMediaUseCase';
import { GetAvatarUseCase } from '@core/media/application/use-cases/GetAvatarUseCase';
import { UpdateAvatarUseCase } from '@core/media/application/use-cases/UpdateAvatarUseCase';
import { ResolveMediaReferenceUseCase } from '@core/media/application/use-cases/ResolveMediaReferenceUseCase';
import { GetMediaUseCase } from '@core/media/application/use-cases/GetMediaUseCase';
import { GetUploadedMediaUseCase } from '@core/media/application/use-cases/GetUploadedMediaUseCase';
import { RequestAvatarGenerationUseCase } from '@core/media/application/use-cases/RequestAvatarGenerationUseCase';
import { ResolveMediaReferenceUseCase } from '@core/media/application/use-cases/ResolveMediaReferenceUseCase';
import { UpdateAvatarUseCase } from '@core/media/application/use-cases/UpdateAvatarUseCase';
import { UploadMediaUseCase } from '@core/media/application/use-cases/UploadMediaUseCase';
// Import presenters
import { RequestAvatarGenerationPresenter } from './presenters/RequestAvatarGenerationPresenter';
import { UploadMediaPresenter } from './presenters/UploadMediaPresenter';
import { GetMediaPresenter } from './presenters/GetMediaPresenter';
import { DeleteMediaPresenter } from './presenters/DeleteMediaPresenter';
import { GetAvatarPresenter } from './presenters/GetAvatarPresenter';
import { GetMediaPresenter } from './presenters/GetMediaPresenter';
import { RequestAvatarGenerationPresenter } from './presenters/RequestAvatarGenerationPresenter';
import { UpdateAvatarPresenter } from './presenters/UpdateAvatarPresenter';
import { UploadMediaPresenter } from './presenters/UploadMediaPresenter';
import {
AVATAR_GENERATION_REPOSITORY_TOKEN,
MEDIA_REPOSITORY_TOKEN,
AVATAR_REPOSITORY_TOKEN,
FACE_VALIDATION_PORT_TOKEN,
AVATAR_GENERATION_PORT_TOKEN,
MEDIA_STORAGE_PORT_TOKEN,
LOGGER_TOKEN,
REQUEST_AVATAR_GENERATION_USE_CASE_TOKEN,
UPLOAD_MEDIA_USE_CASE_TOKEN,
GET_MEDIA_USE_CASE_TOKEN,
DELETE_MEDIA_USE_CASE_TOKEN,
GET_AVATAR_USE_CASE_TOKEN,
UPDATE_AVATAR_USE_CASE_TOKEN,
RESOLVE_MEDIA_REFERENCE_USE_CASE_TOKEN,
GET_UPLOADED_MEDIA_USE_CASE_TOKEN,
MEDIA_RESOLVER_PORT_TOKEN,
AVATAR_GENERATION_PORT_TOKEN,
AVATAR_GENERATION_REPOSITORY_TOKEN,
AVATAR_REPOSITORY_TOKEN,
DELETE_MEDIA_USE_CASE_TOKEN,
FACE_VALIDATION_PORT_TOKEN,
GET_AVATAR_USE_CASE_TOKEN,
GET_MEDIA_USE_CASE_TOKEN,
GET_UPLOADED_MEDIA_USE_CASE_TOKEN,
LOGGER_TOKEN,
MEDIA_REPOSITORY_TOKEN,
MEDIA_RESOLVER_PORT_TOKEN,
MEDIA_STORAGE_PORT_TOKEN,
REQUEST_AVATAR_GENERATION_USE_CASE_TOKEN,
RESOLVE_MEDIA_REFERENCE_USE_CASE_TOKEN,
UPDATE_AVATAR_USE_CASE_TOKEN,
UPLOAD_MEDIA_USE_CASE_TOKEN,
} from './MediaTokens';
export * from './MediaTokens';
import type { FaceValidationResult } from '@core/media/application/ports/FaceValidationPort';
import type { AvatarGenerationResult } from '@core/media/application/ports/AvatarGenerationPort';
import type { FaceValidationResult } from '@core/media/application/ports/FaceValidationPort';
// External adapters (ports) - these remain mock implementations
class MockFaceValidationAdapter implements FaceValidationPort {
@@ -84,9 +84,9 @@ class MockLogger implements Logger {
error(): void {}
}
import { MediaGenerationService } from '@core/media/domain/services/MediaGenerationService';
import { MediaResolverAdapter } from '@adapters/media/MediaResolverAdapter';
import { FileSystemMediaStorageAdapter } from '@adapters/media/ports/FileSystemMediaStorageAdapter';
import { MediaGenerationService } from '@core/media/domain/services/MediaGenerationService';
// Import logging infrastructure
import { InitializationLogger } from '../../shared/logging/InitializationLogger';

View File

@@ -1,53 +1,53 @@
import { Injectable, Inject } from '@nestjs/common';
import type { RequestAvatarGenerationInputDTO } from './dtos/RequestAvatarGenerationInputDTO';
import type { UploadMediaInputDTO } from './dtos/UploadMediaInputDTO';
import type { UpdateAvatarInputDTO } from './dtos/UpdateAvatarInputDTO';
import type { RequestAvatarGenerationOutputDTO } from './dtos/RequestAvatarGenerationOutputDTO';
import type { UploadMediaOutputDTO } from './dtos/UploadMediaOutputDTO';
import type { GetMediaOutputDTO } from './dtos/GetMediaOutputDTO';
import type { MediaReference } from '@core/domain/media/MediaReference';
import type { RacingSuitColor } from '@core/media/domain/types/AvatarGenerationRequest';
import { Inject, Injectable } from '@nestjs/common';
import type { DeleteMediaOutputDTO } from './dtos/DeleteMediaOutputDTO';
import type { GetAvatarOutputDTO } from './dtos/GetAvatarOutputDTO';
import type { GetMediaOutputDTO } from './dtos/GetMediaOutputDTO';
import type { RequestAvatarGenerationInputDTO } from './dtos/RequestAvatarGenerationInputDTO';
import type { RequestAvatarGenerationOutputDTO } from './dtos/RequestAvatarGenerationOutputDTO';
import type { UpdateAvatarInputDTO } from './dtos/UpdateAvatarInputDTO';
import type { UpdateAvatarOutputDTO } from './dtos/UpdateAvatarOutputDTO';
import type { UploadMediaInputDTO } from './dtos/UploadMediaInputDTO';
import type { UploadMediaOutputDTO } from './dtos/UploadMediaOutputDTO';
import type { ValidateFaceInputDTO } from './dtos/ValidateFaceInputDTO';
import type { ValidateFaceOutputDTO } from './dtos/ValidateFaceOutputDTO';
import type { RacingSuitColor } from '@core/media/domain/types/AvatarGenerationRequest';
import type { MulterFile } from './types/MulterFile';
import type { MediaReference } from '@core/domain/media/MediaReference';
type RequestAvatarGenerationInput = RequestAvatarGenerationInputDTO;
type UploadMediaInput = UploadMediaInputDTO;
type UpdateAvatarInput = UpdateAvatarInputDTO;
// Use cases
import { RequestAvatarGenerationUseCase } from '@core/media/application/use-cases/RequestAvatarGenerationUseCase';
import { UploadMediaUseCase } from '@core/media/application/use-cases/UploadMediaUseCase';
import { GetMediaUseCase } from '@core/media/application/use-cases/GetMediaUseCase';
import { DeleteMediaUseCase } from '@core/media/application/use-cases/DeleteMediaUseCase';
import { GetAvatarUseCase } from '@core/media/application/use-cases/GetAvatarUseCase';
import { UpdateAvatarUseCase } from '@core/media/application/use-cases/UpdateAvatarUseCase';
import { ResolveMediaReferenceUseCase } from '@core/media/application/use-cases/ResolveMediaReferenceUseCase';
import { GetMediaUseCase } from '@core/media/application/use-cases/GetMediaUseCase';
import { GetUploadedMediaUseCase, type GetUploadedMediaResult } from '@core/media/application/use-cases/GetUploadedMediaUseCase';
import { RequestAvatarGenerationUseCase } from '@core/media/application/use-cases/RequestAvatarGenerationUseCase';
import { ResolveMediaReferenceUseCase } from '@core/media/application/use-cases/ResolveMediaReferenceUseCase';
import { UpdateAvatarUseCase } from '@core/media/application/use-cases/UpdateAvatarUseCase';
import { UploadMediaUseCase } from '@core/media/application/use-cases/UploadMediaUseCase';
// Presenters (now transformers)
import { RequestAvatarGenerationPresenter } from './presenters/RequestAvatarGenerationPresenter';
import { UploadMediaPresenter } from './presenters/UploadMediaPresenter';
import { GetMediaPresenter } from './presenters/GetMediaPresenter';
import { DeleteMediaPresenter } from './presenters/DeleteMediaPresenter';
import { GetAvatarPresenter } from './presenters/GetAvatarPresenter';
import { GetMediaPresenter } from './presenters/GetMediaPresenter';
import { RequestAvatarGenerationPresenter } from './presenters/RequestAvatarGenerationPresenter';
import { UpdateAvatarPresenter } from './presenters/UpdateAvatarPresenter';
import { UploadMediaPresenter } from './presenters/UploadMediaPresenter';
import type { Logger } from '@core/shared/domain/Logger';
import {
REQUEST_AVATAR_GENERATION_USE_CASE_TOKEN,
UPLOAD_MEDIA_USE_CASE_TOKEN,
GET_MEDIA_USE_CASE_TOKEN,
DELETE_MEDIA_USE_CASE_TOKEN,
GET_AVATAR_USE_CASE_TOKEN,
UPDATE_AVATAR_USE_CASE_TOKEN,
RESOLVE_MEDIA_REFERENCE_USE_CASE_TOKEN,
GET_UPLOADED_MEDIA_USE_CASE_TOKEN,
LOGGER_TOKEN,
DELETE_MEDIA_USE_CASE_TOKEN,
GET_AVATAR_USE_CASE_TOKEN,
GET_MEDIA_USE_CASE_TOKEN,
GET_UPLOADED_MEDIA_USE_CASE_TOKEN,
LOGGER_TOKEN,
REQUEST_AVATAR_GENERATION_USE_CASE_TOKEN,
RESOLVE_MEDIA_REFERENCE_USE_CASE_TOKEN,
UPDATE_AVATAR_USE_CASE_TOKEN,
UPLOAD_MEDIA_USE_CASE_TOKEN,
} from './MediaTokens';
import type { Logger } from '@core/shared/application';
@Injectable()
export class MediaService {