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

import lombok.Data;

import java.util.Date;

/**
 * 字段级变更明细返回结构。
 *
 * <p>Mapper XML 已经把所需的 JOIN 结果（关联房源的 type / 网格 / 地址）铺平到此 VO，
 * 前端直接使用。</p>
 */
@Data
public class FieldChangeRecordVO {

    /** 日志记录 id。 */
    private String id;

    /** HOUSE_RESOURCE / BUSINESS_ENTITY_INFO。 */
    private String subjectType;

    /** 主体 id（房源 id 或经营主体 id）。 */
    private String subjectId;

    /** 主体展示名：HR 侧为"地址 + 房号"拼接；BE 侧为经营主体 name。 */
    private String subjectName;

    /** 字段码。 */
    private String fieldCode;

    /** 字段中文 label，由 Service 层填充（从 FieldCode 枚举读）。 */
    private String fieldLabel;

    /** 值类型，TEXT/ENUM/NUMBER/IMAGE，由 Service 层填充。 */
    private String valueType;

    private String oldValue;

    private String newValue;

    /** 1 新增 / 2 修改。 */
    private Integer operationType;

    private Date operationTime;

    /**
     * 关联房源 type（BE 侧一条日志可能对应多行，每行对应一个关联房源）。
     * HR 侧就是主体自己的 type。
     */
    private Integer hrType;

    private String two;

    private String three;

    private String four;

    /** 关联房源 id（BE 侧用于 drilldown）。HR 侧等于 subjectId。 */
    private String associatedHouseResourceId;

    /** 关联房源展示名（地址 + 房号）。HR 侧与 subjectName 重复，可前端忽略。 */
    private String associatedHouseResourceName;
}
