package com.infoepoch.pms.agent.domain.care.model;

import java.util.Collections;
import java.util.List;

/**
 * 用户画像摘要。
 *
 * @param userId 用户唯一标识，用于推荐结果去重和续轮定位
 * @param userName 用户名称，供模型理解和客户端展示
 * @param age 用户年龄
 * @param gender 用户性别
 * @param interests 用户兴趣爱好列表
 * @param tags 用户标签列表，如特长、画像标签等
 * @param region 用户所属区域、部门或组织归属
 * @param summary 用户补充摘要，通常包含健康指标或其他辅助说明
 */
public record UserProfileSummary(
        String userId,
        String userName,
        Integer age,
        String gender,
        List<String> interests,
        List<String> tags,
        String region,
        String summary
) {

    public UserProfileSummary {
        userId = userId == null ? "" : userId.trim();
        userName = userName == null ? "" : userName.trim();
        gender = gender == null ? "" : gender.trim();
        region = region == null ? "" : region.trim();
        summary = summary == null ? "" : summary.trim();
        interests = interests == null ? Collections.emptyList() : List.copyOf(interests);
        tags = tags == null ? Collections.emptyList() : List.copyOf(tags);
    }
}
