inmemory to postgres

This commit is contained in:
2025-12-29 20:50:03 +01:00
parent 12ae6e1dad
commit 3f610c1cb6
64 changed files with 3689 additions and 63 deletions

View File

@@ -2,8 +2,10 @@ import { Module } from '@nestjs/common';
import { MediaService } from './MediaService';
import { MediaController } from './MediaController';
import { MediaProviders } from './MediaProviders';
import { MediaPersistenceModule } from '../../persistence/media/MediaPersistenceModule';
@Module({
imports: [MediaPersistenceModule],
controllers: [MediaController],
providers: [MediaService, ...MediaProviders],
exports: [MediaService],

View File

@@ -57,37 +57,11 @@ import {
export * from './MediaTokens';
import type { AvatarGenerationRequest } from '@core/media/domain/entities/AvatarGenerationRequest';
import type { Media } from '@core/media/domain/entities/Media';
import type { Avatar } from '@core/media/domain/entities/Avatar';
import type { FaceValidationResult } from '@core/media/application/ports/FaceValidationPort';
import type { AvatarGenerationResult } from '@core/media/application/ports/AvatarGenerationPort';
import type { UploadResult } from '@core/media/application/ports/MediaStoragePort';
// Mock implementations
class MockAvatarGenerationRepository implements IAvatarGenerationRepository {
async save(): Promise<void> {}
async findById(): Promise<AvatarGenerationRequest | null> { return null; }
async findByUserId(): Promise<AvatarGenerationRequest[]> { return []; }
async findLatestByUserId(): Promise<AvatarGenerationRequest | null> { return null; }
async delete(): Promise<void> {}
}
class MockMediaRepository implements IMediaRepository {
async save(): Promise<void> {}
async findById(): Promise<Media | null> { return null; }
async findByUploadedBy(): Promise<Media[]> { return []; }
async delete(): Promise<void> {}
}
class MockAvatarRepository implements IAvatarRepository {
async save(): Promise<void> {}
async findById(): Promise<Avatar | null> { return null; }
async findActiveByDriverId(): Promise<Avatar | null> { return null; }
async findByDriverId(): Promise<Avatar[]> { return []; }
async delete(): Promise<void> {}
}
// External adapters (ports) - these remain mock implementations
class MockFaceValidationAdapter implements FaceValidationPort {
async validateFacePhoto(): Promise<FaceValidationResult> {
return {
@@ -137,18 +111,6 @@ export const MediaProviders: Provider[] = [
DeleteMediaPresenter,
GetAvatarPresenter,
UpdateAvatarPresenter,
{
provide: AVATAR_GENERATION_REPOSITORY_TOKEN,
useClass: MockAvatarGenerationRepository,
},
{
provide: MEDIA_REPOSITORY_TOKEN,
useClass: MockMediaRepository,
},
{
provide: AVATAR_REPOSITORY_TOKEN,
useClass: MockAvatarRepository,
},
{
provide: FACE_VALIDATION_PORT_TOKEN,
useClass: MockFaceValidationAdapter,