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

import com.ruoyi.common.core.page.PageDomain;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
public class HouseResourcePageQuery extends PageDomain {

    private String two;

    private String three;

    private String four;

    private Integer houseResourceAttribute;

    private String sortWay;

    private Integer wgType;

    private List<Integer> wgTypes;

    private Integer hireStatus;

    private String houseNumber;

    private BigDecimal houseAreaMin;

    private BigDecimal houseAreaMax;

    private Integer houseResourceType;

    private BigDecimal yearSellMin;

    private BigDecimal yearSellMax;

    private List<String> wgCodes;

    /**
     * 直接按 house_resource.id 精确筛选。
     *
     * <p>典型用途：dataCollection 返回的 houseResourceInsert / houseResourceUpdate 桶中的
     * id 列表直接回传，用于 drilldown 查看房源维度的变更明细。传空 / null 不生效。</p>
     */
    private List<String> ids;

    /**
     * 按 business_entity_info.id 精确筛选。
     *
     * <p>典型用途：dataCollection 返回的 businessEntityInsertIds / businessEntityUpdateIds 回传，
     * 用于 drilldown 查看经营主体维度的变更明细。传空 / null 不生效。</p>
     */
    private List<String> businessEntityInfoIds;

    private String name;

    private boolean zlFlag;

    private boolean zyFlag;

    private boolean qtFlag;

    private boolean zaiyingFlag;

    private boolean xzFlag;

    private boolean gkFlag;

    private boolean zyzyFlag;

    private boolean sbFlag;

    private String fourOrHouseNumber;

    private BigDecimal dayPriceMin;

    private BigDecimal dayPriceMax;

    private BigDecimal yearTaxMin;

    private BigDecimal yearTaxMax;

    private BigDecimal unitPriceMin;

    private BigDecimal unitPriceMax;

    private Integer gsFlag;

    private String industryClassification;

    private String incomeSort;

    private Integer year;

    private Integer registrationPlaceFlag;

    private String address;

    private String ownership;

    private String houseResourceEquityTel;

    private String principal;

    private String principalTel;

    private String business;

    private Integer workerNumberMin;

    private Integer workerNumberMax;

    private String registeredAddress;

    private String nature;

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

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

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

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

    private List<AiQuery> aiQueries;

    @Data
    public static class AiQuery {

        private String two;

        private String three;

        private String four;

        private Integer wgType;
    }
}
