using System.ComponentModel.DataAnnotations;

namespace Dpz.Core.Auth.Models.AdminApi;

/// <summary>
/// 更新 OAuth 2.0 / OpenID Connect 应用请求
/// </summary>
public class UpdateAuthApplicationRequest : AdminMfaRequest
{
    /// <summary>
    /// 应用显示名称
    /// </summary>
    [Required(ErrorMessage = "请填写显示名称")]
    public string DisplayName { get; set; } = string.Empty;

    /// <summary>
    /// 应用 Logo URL
    /// </summary>
    public string? Logo { get; set; }

    /// <summary>
    /// 应用类型(如 "web"、"native"、"spa")
    /// </summary>
    public string? ApplicationType { get; set; }

    /// <summary>
    /// 客户端类型(公开 / 机密)
    /// </summary>
    [Required(ErrorMessage = "请选择客户端类型")]
    public string ClientType { get; set; } = string.Empty;

    /// <summary>
    /// 允许的回调地址列表
    /// </summary>
    public List<string> RedirectUris { get; set; } = [];

    /// <summary>
    /// 登出后的回调地址
    /// </summary>
    public string? PostLogoutRedirectUri { get; set; }

    /// <summary>
    /// 授权许可列表(如 "openid"、"profile"、"email")
    /// </summary>
    public List<string> Permissions { get; set; } = [];
}
评论加载中...