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

namespace OnlyOneAccessTemplate.Models
{
    public class SiteConfiguration
    {
        [BsonId]
        [BsonRepresentation(BsonType.ObjectId)]
        public string Id { get; set; } = string.Empty;

        [Required]
        public string Language { get; set; } = "pt"; // "pt", "en", "es"
        
        public string Currency { get; set; } = "BRL"; // "BRL", "USD", "EUR"
        public string CountryCode { get; set; } = "BR"; // "BR", "US", "ES"
        
        // SEO Configuration
        public string SiteTitle { get; set; } = string.Empty;
        public string SiteDescription { get; set; } = string.Empty;
        public string SiteKeywords { get; set; } = string.Empty;
        public string OgImage { get; set; } = string.Empty;
        
        // AdSense Configuration
        public string AdSenseClientId { get; set; } = string.Empty;
        public string AdSenseSlotId { get; set; } = string.Empty;
        
        // Home Page Content
        public HomePageContent HomePage { get; set; } = new();
        
        public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
        public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
    }

    public class HomePageContent
    {
        public string MainTitle { get; set; } = string.Empty;
        public string MainDescription { get; set; } = string.Empty;
        public string CallToAction { get; set; } = string.Empty;
        public List<ConverterCard> FeaturedConverters { get; set; } = new();
    }

    public class ConverterCard
    {
        public string Title { get; set; } = string.Empty;
        public string Description { get; set; } = string.Empty;
        public string Icon { get; set; } = string.Empty;
        public string Url { get; set; } = string.Empty;
    }
}
