package com.ruoyi.security.domain;

import java.util.Date;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 访问控制对象 dc_access_control
 * 
 * @author ruoyi
 * @date 2024-12-19
 */
public class AccessControl extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 访问控制ID */
    private Long accessId;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 用户名 */
    @Excel(name = "用户名")
    private String username;

    /** 资源类型 */
    @Excel(name = "资源类型")
    private String resourceType;

    /** 资源ID */
    @Excel(name = "资源ID")
    private String resourceId;

    /** 权限类型 */
    @Excel(name = "权限类型")
    private String permissionType;

    /** 访问级别 */
    @Excel(name = "访问级别")
    private String accessLevel;

    /** 字段权限 */
    @Excel(name = "字段权限")
    private String fieldPermissions;

    /** 脱敏规则 */
    @Excel(name = "脱敏规则")
    private String maskingRules;

    /** IP白名单 */
    @Excel(name = "IP白名单")
    private String ipWhitelist;

    /** 时间限制 */
    @Excel(name = "时间限制")
    private String timeRestriction;

    /** 访问状态 */
    @Excel(name = "访问状态")
    private String accessStatus;

    /** 生效时间 */
    @Excel(name = "生效时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date effectiveTime;

    /** 过期时间 */
    @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date expiryTime;

    /** 最后访问时间 */
    @Excel(name = "最后访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastAccessTime;

    /** 访问次数 */
    @Excel(name = "访问次数")
    private Long accessCount;

    public void setAccessId(Long accessId) 
    {
        this.accessId = accessId;
    }

    public Long getAccessId() 
    {
        return accessId;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setUsername(String username) 
    {
        this.username = username;
    }

    public String getUsername() 
    {
        return username;
    }

    public void setResourceType(String resourceType) 
    {
        this.resourceType = resourceType;
    }

    public String getResourceType() 
    {
        return resourceType;
    }

    public void setResourceId(String resourceId) 
    {
        this.resourceId = resourceId;
    }

    public String getResourceId() 
    {
        return resourceId;
    }

    public void setPermissionType(String permissionType) 
    {
        this.permissionType = permissionType;
    }

    public String getPermissionType() 
    {
        return permissionType;
    }

    public void setAccessLevel(String accessLevel) 
    {
        this.accessLevel = accessLevel;
    }

    public String getAccessLevel() 
    {
        return accessLevel;
    }

    public void setFieldPermissions(String fieldPermissions) 
    {
        this.fieldPermissions = fieldPermissions;
    }

    public String getFieldPermissions() 
    {
        return fieldPermissions;
    }

    public void setMaskingRules(String maskingRules) 
    {
        this.maskingRules = maskingRules;
    }

    public String getMaskingRules() 
    {
        return maskingRules;
    }

    public void setIpWhitelist(String ipWhitelist) 
    {
        this.ipWhitelist = ipWhitelist;
    }

    public String getIpWhitelist() 
    {
        return ipWhitelist;
    }

    public void setTimeRestriction(String timeRestriction) 
    {
        this.timeRestriction = timeRestriction;
    }

    public String getTimeRestriction() 
    {
        return timeRestriction;
    }

    public void setAccessStatus(String accessStatus) 
    {
        this.accessStatus = accessStatus;
    }

    public String getAccessStatus() 
    {
        return accessStatus;
    }

    public void setEffectiveTime(Date effectiveTime) 
    {
        this.effectiveTime = effectiveTime;
    }

    public Date getEffectiveTime() 
    {
        return effectiveTime;
    }

    public void setExpiryTime(Date expiryTime) 
    {
        this.expiryTime = expiryTime;
    }

    public Date getExpiryTime() 
    {
        return expiryTime;
    }

    public void setLastAccessTime(Date lastAccessTime) 
    {
        this.lastAccessTime = lastAccessTime;
    }

    public Date getLastAccessTime() 
    {
        return lastAccessTime;
    }

    public void setAccessCount(Long accessCount) 
    {
        this.accessCount = accessCount;
    }

    public Long getAccessCount() 
    {
        return accessCount;
    }

    @Override
    public String toString() {
        return "AccessControl{" +
                "accessId=" + accessId +
                ", userId=" + userId +
                ", username='" + username + '\'' +
                ", resourceType='" + resourceType + '\'' +
                ", resourceId='" + resourceId + '\'' +
                ", permissionType='" + permissionType + '\'' +
                ", accessLevel='" + accessLevel + '\'' +
                ", fieldPermissions='" + fieldPermissions + '\'' +
                ", maskingRules='" + maskingRules + '\'' +
                ", ipWhitelist='" + ipWhitelist + '\'' +
                ", timeRestriction='" + timeRestriction + '\'' +
                ", accessStatus='" + accessStatus + '\'' +
                ", effectiveTime=" + effectiveTime +
                ", expiryTime=" + expiryTime +
                ", lastAccessTime=" + lastAccessTime +
                ", accessCount=" + accessCount +
                '}';
    }
}