Files
gridpilot.gg/packages/media/domain/repositories/IAvatarGenerationRepository.ts
2025-12-08 23:52:36 +01:00

34 lines
901 B
TypeScript

/**
* Repository Interface: IAvatarGenerationRepository
*
* Defines the contract for avatar generation request persistence.
*/
import type { AvatarGenerationRequest, AvatarGenerationRequestProps } from '../entities/AvatarGenerationRequest';
export interface IAvatarGenerationRepository {
/**
* Save an avatar generation request
*/
save(request: AvatarGenerationRequest): Promise<void>;
/**
* Find an avatar generation request by ID
*/
findById(id: string): Promise<AvatarGenerationRequest | null>;
/**
* Find all avatar generation requests for a user
*/
findByUserId(userId: string): Promise<AvatarGenerationRequest[]>;
/**
* Find the latest avatar generation request for a user
*/
findLatestByUserId(userId: string): Promise<AvatarGenerationRequest | null>;
/**
* Delete an avatar generation request
*/
delete(id: string): Promise<void>;
}