/**
 * Repository Interface: AvatarRepository
 *
 * Defines the contract for avatar persistence.
 */

import type { Avatar } from '../entities/Avatar';

export interface AvatarRepository {
  /**
   * Save an avatar
   */
  save(avatar: Avatar): Promise<void>;

  /**
   * Find avatar by ID
   */
  findById(id: string): Promise<Avatar | null>;

  /**
   * Find active avatar for a driver
   */
  findActiveByDriverId(driverId: string): Promise<Avatar | null>;

  /**
   * Find all avatars for a driver
   */
  findByDriverId(driverId: string): Promise<Avatar[]>;

  /**
   * Delete an avatar
   */
  delete(id: string): Promise<void>;
}