using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;

namespace SkyArtShop.Models;

public class AdminUser
{
	[BsonId]
	[BsonRepresentation(BsonType.ObjectId)]
	public string? Id { get; set; }

	[Required]
	[EmailAddress]
	public string Email { get; set; } = string.Empty;

	[Required]
	public string PasswordHash { get; set; } = string.Empty;

	[Required]
	public string Name { get; set; } = string.Empty;

	[Required]
	public string Role { get; set; } = "Admin";

	public List<string> Permissions { get; set; } = new List<string>();

	public bool IsActive { get; set; } = true;

	public bool PasswordNeverExpires { get; set; } = true;

	public DateTime? PasswordExpiresAt { get; set; }

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

	public DateTime CreatedAt { get; set; } = DateTime.UtcNow;

	public DateTime? LastLogin { get; set; }

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

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