You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.6 KiB
C#

using NPin.Framework.Upms.Domain.Shared.Enums;
namespace NPin.Framework.Upms.Domain.Shared.Dtos;
/// <summary>
/// 完整用户信息Dto
/// 包括所有关联关系
/// </summary>
public class UserFullDto
{
public UserDto User { get; set; } = new();
// Relations
public HashSet<RoleDto> Roles { get; set; } = [];
public HashSet<PostDto> Posts { get; set; } = [];
public HashSet<OrganizationDto> Organizations { get; set; } = [];
public HashSet<string> PostCodes { get; set; } = [];
public HashSet<string> RoleCodes { get; set; } = [];
public HashSet<string> PermissionCodes { get; set; } = [];
}
public class UserDto
{
/// <summary>
/// 主键ID
/// </summary>
public Guid Id { get; set; }
public bool IsDeleted { get; }
public DateTime CreationTime { get; } = DateTime.Now;
public Guid? CreatorId { get; }
public DateTime? LastModificationTime { get; }
public Guid? LastModifierId { get; }
public bool IsEnabled { get; set; }
public int OrderNum { get; set; }
public string Username { get; set; } = string.Empty;
public string PhoneNumber { get; set; }
public string? Email { get; set; }
public string? Nickname { get; set; }
public string Password { get; set; } = string.Empty;
public string Salt { get; set; } = string.Empty;
public string? Introduction { get; set; }
public GenderEnum Gender { get; set; } = GenderEnum.Secrecy;
public string? IpAddr { get; set; }
public string? Avatar { get; set; }
// For user (metadata)
public Dictionary<string, string> Metadata { get; set; }
}