import { Achievement, AchievementProps } from '@core/identity/domain/entities/Achievement'; export interface IAchievementRepository { save(achievement: Achievement): Promise; findById(id: string): Promise; } export class CreateAchievementUseCase { constructor(private readonly achievementRepository: IAchievementRepository) {} async execute(props: Omit): Promise { const achievement = Achievement.create(props); await this.achievementRepository.save(achievement); return achievement; } }