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

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

/**
 * 活动摘要。
 *
 * @param activityId 活动唯一标识，用于推荐结果去重和续轮定位
 * @param activityName 活动名称，供模型理解和客户端展示
 * @param activityType 活动类型，如体育、健康、节日等
 * @param suitableFor 活动适合人群描述，由上游接口或摘要规则提供
 * @param tags 活动标签列表，用于补充活动主题特征
 * @param location 活动地点或举办区域
 * @param timeWindow 活动时间范围，通常为开始时间到结束时间
 * @param summary 活动摘要信息，包含描述、主办方、管理员、规模等补充内容
 */
public record ActivitySummary(
        String activityId,
        String activityName,
        String activityType,
        String suitableFor,
        List<String> tags,
        String location,
        String timeWindow,
        String summary
) {

    public ActivitySummary {
        activityId = activityId == null ? "" : activityId.trim();
        activityName = activityName == null ? "" : activityName.trim();
        activityType = activityType == null ? "" : activityType.trim();
        suitableFor = suitableFor == null ? "" : suitableFor.trim();
        location = location == null ? "" : location.trim();
        timeWindow = timeWindow == null ? "" : timeWindow.trim();
        summary = summary == null ? "" : summary.trim();
        tags = tags == null ? Collections.emptyList() : List.copyOf(tags);
    }
}
