using DigitalData.UserManager.Application.DTOs.User;
using System.Security.Claims;

namespace DigitalData.UserManager.API.Models;

public static class ModelExtensions
{
    public static List<Claim> ToClaimList(this UserReadDto user) => new()
    {
        new (ClaimTypes.NameIdentifier, user.Id.ToString()),
        new (ClaimTypes.Name, user.Username),
        new (ClaimTypes.Surname, user.Name ?? ""),
        new (ClaimTypes.GivenName, user.Prename ?? ""),
        new (ClaimTypes.Email, user.Email ?? "")
    };

    public static Dictionary<string, object> ToClaimDictionary(this UserReadDto user) => user.ToClaimList().ToDictionary(claim => claim.Type, claim => (object)claim.Value);
}