namespace Dpz.Core.Auth.Models;

public abstract class AuthShellViewModel
{
    public required string EntryName { get; set; }

    public string? PageName { get; set; }

    public string? ReturnUrl { get; set; }

    public string? Message { get; set; }

    public VmUserInfo? User { get; set; }

    public static AuthShellViewModel<EmptyAuthShellPayload> Empty(
        string entryName,
        string? pageName = null
    ) => new() { EntryName = entryName, PageName = pageName };
}

public sealed class AuthShellViewModel<TPayload> : AuthShellViewModel
{
    public TPayload? Payload { get; set; }
}

public sealed record EmptyAuthShellPayload;

public sealed record UserCenterShellPayload
{
    public string? WebHost { get; init; }
}
评论加载中...