/**
 * Repository Interface: UserRatingRepository
 * 
 * Port for persisting and retrieving UserRating snapshots.
 * Snapshots are derived from rating events for fast reads.
 */

import type { UserRating } from '../value-objects/UserRating';

export interface UserRatingRepository {
  /**
   * Find rating snapshot by user ID
   */
  findByUserId(userId: string): Promise<UserRating | null>;
  
  /**
   * Save or update a user rating snapshot
   */
  save(userRating: UserRating): Promise<UserRating>;
}