Files
TakeoutSaaS.TenantApi/src/Application/TakeoutSaaS.Application/Identity/Contracts/PermissionTreeDto.cs

59 lines
1.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System.Text.Json.Serialization;
using TakeoutSaaS.Shared.Abstractions.Serialization;
namespace TakeoutSaaS.Application.Identity.Contracts;
/// <summary>
/// 权限树节点 DTO。
/// </summary>
public sealed record PermissionTreeDto
{
/// <summary>
/// 权限 ID雪花序列化为字符串
/// </summary>
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
public long Id { get; init; }
/// <summary>
/// 租户 ID雪花序列化为字符串
/// </summary>
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
public long TenantId { get; init; }
/// <summary>
/// 父级权限 ID。
/// </summary>
[JsonConverter(typeof(SnowflakeIdJsonConverter))]
public long ParentId { get; init; }
/// <summary>
/// 排序值,值越小越靠前。
/// </summary>
public int SortOrder { get; init; }
/// <summary>
/// 权限类型group/leaf
/// </summary>
public string Type { get; init; } = string.Empty;
/// <summary>
/// 权限名称。
/// </summary>
public string Name { get; init; } = string.Empty;
/// <summary>
/// 权限编码(租户内唯一)。
/// </summary>
public string Code { get; init; } = string.Empty;
/// <summary>
/// 描述。
/// </summary>
public string? Description { get; init; }
/// <summary>
/// 子节点集合。
/// </summary>
public IReadOnlyList<PermissionTreeDto> Children { get; init; } = Array.Empty<PermissionTreeDto>();
}