Files
Store.Management/Source/Store.Management.Api/Users/UserModels.cs
T
2026-11-13 19:19:33 +08:00

55 lines
2.1 KiB
C#

using Store.Management.Models;
using System.ComponentModel.DataAnnotations;
using System.Text.Json.Serialization;
using Store.Management.Api.Models;
namespace Store.Management.Api.Users;
public sealed class UserSearchRequest : PageRequest
{
[StringLength(100)] public string? Keyword { get; set; }
public int? GroupId { get; set; }
[StringLength(20)] public string? ParentUserName { get; set; }
}
public class UserEditRequest
{
public UserGroup? GroupId { get; set; }
public UserAdminLevel? SaLevel { get; set; }
[StringLength(50)] public string? OemId { get; set; }
[StringLength(1000)] public string? Authority { get; set; }
[StringLength(50)] public string? NickName { get; set; }
[StringLength(30)] public string? Mobile { get; set; }
[StringLength(100)] public string? CompanyName { get; set; }
[StringLength(255)] public string? Notes { get; set; }
}
public sealed class UserCreateRequest : UserEditRequest
{
[Required, StringLength(20)] public string UserName { get; set; } = "";
[Required, StringLength(128, MinimumLength = 6)] public string Password { get; set; } = "";
[StringLength(20)] public string? ParentUserName { get; set; }
}
public sealed record ChangePasswordRequest(string UserName, string NewPassword, string? OldPassword = null);
public sealed class UserUpdateRequest : UserEditRequest
{
[Range(1, int.MaxValue)] public int Id { get; set; }
}
public sealed class UserBillingUpdateRequest
{
[Range(1, int.MaxValue)] public int Id { get; init; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public int? ShopPointsPerMonth { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public decimal? PostagePerOrder { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public decimal? RefundPostagePerOrder { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public decimal? GiftOemAmountPerOrder { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public decimal? SyncLogisticsPerOrder { get; set; }
}