package com.ruoyi.system.domain;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 登录策略配置实体，对应表 {@code sys_login_policy}。
 * <p>
 * 按「网络区域 + 角色」配置最低身份鉴别方式，例如互联网环境下 admin 角色强制 SMS_2FA。
 * 与 {@code application.yml} 中 {@code login.network-zone} 配合使用。
 * </p>
 *
 * @see com.ruoyi.system.service.impl.SysLoginPolicyServiceImpl
 * @see sql/crypto_phase1.sql
 */
public class SysLoginPolicy extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private Long policyId;

    /**
     * 角色权限字符（sys_role.role_key）。
     * 为空表示该 network_zone 下的默认策略（兜底规则）。
     */
    private String roleKey;

    /** 网络区域：INTERNAL 内网 / INTERNET 互联网 */
    private String networkZone;

    /**
     * 策略类型，取值见 {@link com.ruoyi.common.enums.LoginPolicyType}：
     * PASSWORD、CERT（UKey，内网一期预留）、SMS_2FA。
     */
    private String policyType;

    /** 0 停用 1 启用 */
    private String enabled;

    public Long getPolicyId()
    {
        return policyId;
    }

    public void setPolicyId(Long policyId)
    {
        this.policyId = policyId;
    }

    public String getRoleKey()
    {
        return roleKey;
    }

    public void setRoleKey(String roleKey)
    {
        this.roleKey = roleKey;
    }

    public String getNetworkZone()
    {
        return networkZone;
    }

    public void setNetworkZone(String networkZone)
    {
        this.networkZone = networkZone;
    }

    public String getPolicyType()
    {
        return policyType;
    }

    public void setPolicyType(String policyType)
    {
        this.policyType = policyType;
    }

    public String getEnabled()
    {
        return enabled;
    }

    public void setEnabled(String enabled)
    {
        this.enabled = enabled;
    }
}
