版本260406
This commit is contained in:
372
OrpaonVision.Model/Security/ProductPermissionModel.cs
Normal file
372
OrpaonVision.Model/Security/ProductPermissionModel.cs
Normal file
@@ -0,0 +1,372 @@
|
||||
namespace OrpaonVision.Model.Security;
|
||||
|
||||
/// <summary>
|
||||
/// 机种权限模型。
|
||||
/// </summary>
|
||||
public sealed class ProductPermissionModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 权限ID。
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机种ID。
|
||||
/// </summary>
|
||||
public Guid ProductTypeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户ID。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色ID。
|
||||
/// </summary>
|
||||
public Guid RoleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 权限类型。
|
||||
/// </summary>
|
||||
public ProductPermissionType PermissionType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用。
|
||||
/// </summary>
|
||||
public bool IsEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 授权时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime GrantedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 授权人。
|
||||
/// </summary>
|
||||
public string GrantedBy { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 过期时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime? ExpiresAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注。
|
||||
/// </summary>
|
||||
public string? Remark { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime CreatedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人。
|
||||
/// </summary>
|
||||
public string CreatedBy { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime UpdatedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新人。
|
||||
/// </summary>
|
||||
public string UpdatedBy { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机种权限类型枚举。
|
||||
/// </summary>
|
||||
public enum ProductPermissionType
|
||||
{
|
||||
/// <summary>
|
||||
/// 查看权限。
|
||||
/// </summary>
|
||||
View = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 编辑权限。
|
||||
/// </summary>
|
||||
Edit = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 发布权限。
|
||||
/// </summary>
|
||||
Publish = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 切换权限。
|
||||
/// </summary>
|
||||
Switch = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 强制切换权限(班组长专用)。
|
||||
/// </summary>
|
||||
ForceSwitch = 4,
|
||||
|
||||
/// <summary>
|
||||
/// 管理权限。
|
||||
/// </summary>
|
||||
Manage = 5
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机种锁定记录模型。
|
||||
/// </summary>
|
||||
public sealed class ProductLockRecordModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 记录ID。
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机种ID。
|
||||
/// </summary>
|
||||
public Guid ProductTypeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 锁定类型。
|
||||
/// </summary>
|
||||
public ProductLockType LockType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 锁定原因。
|
||||
/// </summary>
|
||||
public string LockReason { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 锁定人ID。
|
||||
/// </summary>
|
||||
public Guid LockedByUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 锁定人姓名。
|
||||
/// </summary>
|
||||
public string LockedByName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 锁定时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime LockedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预计解锁时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime? ExpectedUnlockAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 实际解锁时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime? UnlockedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 解锁人ID。
|
||||
/// </summary>
|
||||
public Guid? UnlockedByUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 解锁人姓名。
|
||||
/// </summary>
|
||||
public string? UnlockedByName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 解锁原因。
|
||||
/// </summary>
|
||||
public string? UnlockReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否已解锁。
|
||||
/// </summary>
|
||||
public bool IsUnlocked { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime CreatedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人。
|
||||
/// </summary>
|
||||
public string CreatedBy { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机种锁定类型枚举。
|
||||
/// </summary>
|
||||
public enum ProductLockType
|
||||
{
|
||||
/// <summary>
|
||||
/// 权限锁定。
|
||||
/// </summary>
|
||||
Permission = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 配置锁定。
|
||||
/// </summary>
|
||||
Configuration = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 运行锁定。
|
||||
/// </summary>
|
||||
Runtime = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 维护锁定。
|
||||
/// </summary>
|
||||
Maintenance = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 审计锁定。
|
||||
/// </summary>
|
||||
Audit = 4,
|
||||
|
||||
/// <summary>
|
||||
/// 紧急锁定。
|
||||
/// </summary>
|
||||
Emergency = 5
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机种切换记录模型。
|
||||
/// </summary>
|
||||
public sealed class ProductSwitchRecordModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 记录ID。
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 源机种ID。
|
||||
/// </summary>
|
||||
public Guid? SourceProductTypeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 源机种编码。
|
||||
/// </summary>
|
||||
public string? SourceProductTypeCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目标机种ID。
|
||||
/// </summary>
|
||||
public Guid TargetProductTypeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目标机种编码。
|
||||
/// </summary>
|
||||
public string TargetProductTypeCode { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 切换类型。
|
||||
/// </summary>
|
||||
public ProductSwitchType SwitchType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 切换原因。
|
||||
/// </summary>
|
||||
public string SwitchReason { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 切换人ID。
|
||||
/// </summary>
|
||||
public Guid SwitchedByUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 切换人姓名。
|
||||
/// </summary>
|
||||
public string SwitchedByName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 切换人角色。
|
||||
/// </summary>
|
||||
public string SwitchedByRole { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 切换时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime SwitchedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否强制切换。
|
||||
/// </summary>
|
||||
public bool IsForced { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 强制切换原因。
|
||||
/// </summary>
|
||||
public string? ForcedReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审批人ID(强制切换时需要)。
|
||||
/// </summary>
|
||||
public Guid? ApprovedByUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审批人姓名。
|
||||
/// </summary>
|
||||
public string? ApprovedByName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审批时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime? ApprovedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审批意见。
|
||||
/// </summary>
|
||||
public string? ApprovalComment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 切换前状态。
|
||||
/// </summary>
|
||||
public string? PreviousStateJson { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 切换后状态。
|
||||
/// </summary>
|
||||
public string? NewStateJson { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime CreatedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人。
|
||||
/// </summary>
|
||||
public string CreatedBy { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机种切换类型枚举。
|
||||
/// </summary>
|
||||
public enum ProductSwitchType
|
||||
{
|
||||
/// <summary>
|
||||
/// 正常切换。
|
||||
/// </summary>
|
||||
Normal = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 强制切换。
|
||||
/// </summary>
|
||||
Forced = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 紧急切换。
|
||||
/// </summary>
|
||||
Emergency = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 计划切换。
|
||||
/// </summary>
|
||||
Planned = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 回滚切换。
|
||||
/// </summary>
|
||||
Rollback = 4
|
||||
}
|
||||
Reference in New Issue
Block a user