package com.nbport.zgwl.contractlaunch.dto;

import com.nbport.zgwl.dto.BasePageDto;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.io.Serializable;

/**
 * 合同发起列表查询参数
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class ContractLaunchQueryDto extends BasePageDto implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 合同名称（模糊搜索） */
    private String contractName;

    /** 合同编号 */
    private String contractCode;

    /** 合同类型编码 */
    private String contractType;

    /** 状态（draft/reviewing/rejected/pending_sign/signing/pending_collect/pending_archive/completed） */
    private String status;

    /** 创建时间范围-开始 yyyy-MM-dd */
    private String dateStart;

    /** 创建时间范围-结束 yyyy-MM-dd */
    private String dateEnd;

    // ============== 权限过滤字段（由后端 queryPage 自动注入，前端不传） ==============

    /** 当前登录用户账号（个人级过滤用） */
    private String currentUserId;

    /** 当前登录人组织ID（公司级/我方主体过滤用，与主表 ORG_ID 同类型 String） */
    private String currentOrgId;

    /** 当前登录人部门名称（部门级过滤用） */
    private String currentDeptName;

    /**
     * 查询范围：personal(个人)/department(部门)/company(公司)/admin(管理员)
     * 由后端根据角色解析，前端不传
     */
    private String queryScope;
}
