package cn.nianxx.thhotel.platform.access.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;

/**
 * 平台权限实体。权限码是前后端共同使用的稳定业务代码。
 */
@TableName("platform_permission")
public class PlatformPermissionEntity {

    /** 权限内部 ID。 */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /** 稳定权限代码。 */
    private String permissionCode;
    /** 权限展示名称。 */
    private String permissionName;
    /** 权限分组，例如 RESERVATION、SOURCE_MESSAGE、SYSTEM。 */
    private String permissionGroup;
    /** 权限状态：ACTIVE、DISABLED。 */
    private String permissionStatus;
    /** 是否系统内置权限。 */
    private Boolean systemBuiltin;
    /** 记录创建 UTC 时间。 */
    private LocalDateTime createdAt;
    /** 记录更新 UTC 时间。 */
    private LocalDateTime updatedAt;

    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public String getPermissionCode() { return permissionCode; }
    public void setPermissionCode(String permissionCode) { this.permissionCode = permissionCode; }
    public String getPermissionName() { return permissionName; }
    public void setPermissionName(String permissionName) { this.permissionName = permissionName; }
    public String getPermissionGroup() { return permissionGroup; }
    public void setPermissionGroup(String permissionGroup) { this.permissionGroup = permissionGroup; }
    public String getPermissionStatus() { return permissionStatus; }
    public void setPermissionStatus(String permissionStatus) { this.permissionStatus = permissionStatus; }
    public Boolean getSystemBuiltin() { return systemBuiltin; }
    public void setSystemBuiltin(Boolean systemBuiltin) { this.systemBuiltin = systemBuiltin; }
    public LocalDateTime getCreatedAt() { return createdAt; }
    public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; }
    public LocalDateTime getUpdatedAt() { return updatedAt; }
    public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; }
}
