import { UserProfileEntity } from '../entities/user-profile.entity';

export interface IUserProfileRepository {
  /**
   * 保存用户档案
   */
  save(profile: UserProfileEntity): Promise<void>;

  /**
   * 根据ID查找档案
   */
  findById(id: string): Promise<UserProfileEntity | null>;

  /**
   * 根据用户ID查找档案
   */
  findByUserId(userId: string): Promise<UserProfileEntity | null>;

  /**
   * 更新档案
   */
  update(profile: UserProfileEntity): Promise<void>;

  /**
   * 删除档案
   */
  delete(id: string): Promise<void>;

  /**
   * 根据目标国家查找用户档案
   */
  findByTargetCountry(countryCode: string, options?: {
    limit?: number;
    offset?: number;
  }): Promise<UserProfileEntity[]>;

  /**
   * 统计档案完成度分布
   */
  countByCompletionRange(): Promise<{
    low: number;    // 0-30%
    medium: number; // 30-70%
    high: number;   // 70-100%
  }>;
}

export const USER_PROFILE_REPOSITORY = Symbol('USER_PROFILE_REPOSITORY');
