using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ablera.Serdica.Authority.Models;

public sealed record TokenRequest
{
    [FromForm(Name = "grant_type")] public string? GrantType { get; init; }
    [FromForm(Name = "username")] public string? Username { get; init; }
    [FromForm(Name = "password")] public string? Password { get; init; }
    [FromForm(Name = "client_id")] public required string ClientId { get; init; }
    [FromForm(Name = "client_secret")] public required string ClientSecret { get; init; }
    [FromForm(Name = "scope")] public string? Scope { get; init; }
    [FromForm(Name = "refresh_token")] public string? RefreshToken { get; init; }
    [FromForm(Name = "code")] public string? Code { get; init; }
    [FromForm(Name = "redirect_uri")] public string? RedirectUri { get; init; }
}
