using MemberCenter.Application.Models.Profile;
using MemberCenter.Web.Models.Profile;

namespace MemberCenter.Web.Areas.Admin.Models;

public sealed class AccountDetailViewModel
{
    public Guid UserId { get; set; }

    public string DisplayName { get; set; } = string.Empty;

    public bool IsDisabled { get; set; }

    public bool IsBlacklisted { get; set; }

    public bool IsAdmin { get; set; }

    public bool IsSuperuser { get; set; }

    public bool HasProfileImage { get; set; }

    public long ProfileImageVersion { get; set; }

    public DateTimeOffset CreatedAt { get; set; }

    public DateTimeOffset? LastLoginAt { get; set; }

    public ProfileViewModel Profile { get; set; } = new();

    public IReadOnlyList<UserSubscriptionSummaryDto> Subscriptions { get; set; } = Array.Empty<UserSubscriptionSummaryDto>();

    public bool CanAssignAdmin { get; set; }

    public bool CanDisableAccount { get; set; }

    public bool CanResetPassword { get; set; }

    public bool CanContact { get; set; }
}
