using Indotalent.Data.Interfaces;
using Microsoft.AspNetCore.Identity;

namespace Indotalent.Data.Entities;

public class ApplicationUser : IdentityUser, IHasIsDeleted
{
    public string? FullName { get; set; }
    public string? FirstName { get; set; }
    public string? LastName { get; set; }
    public string? ShortBio { get; set; }
    public string? JobTitle { get; set; }
    public DateTime DateOfBirth { get; set; }
    public string? StreetAddress { get; set; }
    public string? City { get; set; }
    public string? StateProvince { get; set; }
    public string? ZipCode { get; set; }
    public string? Country { get; set; }
    public string SocialMediaLinkedIn { get; set; } = string.Empty;
    public string SocialMediaX { get; set; } = string.Empty;
    public string SocialMediaFacebook { get; set; } = string.Empty;
    public string SocialMediaInstagram { get; set; } = string.Empty;
    public string SocialMediaTikTok { get; set; } = string.Empty;
    public string OtherInformation1 { get; set; } = string.Empty;
    public string OtherInformation2 { get; set; } = string.Empty;
    public string OtherInformation3 { get; set; } = string.Empty;
    public string? SsoIdFirebase { get; set; }
    public string? SsoIdKeycloak { get; set; }
    public string? SsoIdAzure { get; set; }
    public string? SsoIdAws { get; set; }
    public string? SsoIdOther1 { get; set; }
    public string? SsoIdOther2 { get; set; }
    public string? SsoIdOther3 { get; set; }
    public DateTime CreatedAt { get; set; } = DateTime.Now;
    public DateTime? LastLoginAt { get; set; }
    public DateTime? UpdatedAt { get; set; }
    public bool IsActive { get; set; } = true;
    public bool IsDeleted { get; set; } = false;
    public string? AvatarFile { get; set; }
    public string? RefreshToken { get; set; }
}