using Mirea.Api.Security.Common.Domain; using Mirea.Api.Security.Common.Interfaces; using System.Text.Json.Serialization; namespace Mirea.Api.Security.Common.OAuth2.UserInfo; internal class GoogleUserInfo : IUserInfo { [JsonPropertyName("id")] public required string Id { get; set; } [JsonPropertyName("email")] public required string Email { get; set; } [JsonPropertyName("given_name")] public required string GivenName { get; set; } [JsonPropertyName("family_name")] public required string FamilyName { get; set; } [JsonPropertyName("name")] public required string Name { get; set; } [JsonPropertyName("picture")] public required string Picture { get; set; } [JsonPropertyName("verified_email")] public bool? VerifiedEmail { get; set; } public OAuthUser MapToInternalUser() => new() { Id = Id, Email = VerifiedEmail.HasValue && VerifiedEmail.Value ? Email : null, FirstName = GivenName, LastName = FamilyName, IconUri = Picture }; }