package com.ruoyi.system.domain.house.vo;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

/**
 * 房源 & 经营主体变更汇总查询入参。
 *
 * <p>时间窗口基于 {@code data_change_record.operation_time} BETWEEN [start, end]，
 * 统计 {@code operation_type} 为新增（1）/ 修改（2）/ 删除（3）的记录。新增 / 修改会同时
 * 返回对应的 subject_id 列表用于前端 drilldown；删除只返回 count。</p>
 *
 * <p>{@link #two} / {@link #three} / {@link #four} 可选：</p>
 * <ul>
 *     <li>对 HOUSE_RESOURCE 维度：直接按 {@code house_resource.two/three/four} 过滤；</li>
 *     <li>对 BUSINESS_ENTITY_INFO 维度：通过 mapping + house_resource 关联过滤，
 *         即"关联到至少一个匹配网格的房源"的经营主体才会被计入。</li>
 * </ul>
 */
@Data
public class HouseResourceDataCollectionQuery {

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date changeStartTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date changeEndTime;

    private String two;

    private String three;

    private String four;

    /**
     * 当前登录人的网格权限范围，由 Service 层注入，前端无需传。
     * 非空时会额外限定 house_resource.two IN (wgCodes)。
     */
    private List<String> wgCodes;
}
