55 lines
2.0 KiB
C#
55 lines
2.0 KiB
C#
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 string Domain { get; set; } = string.Empty;
|
|
public string TwitterHandle { get; set; } = string.Empty;
|
|
public Dictionary<string, string> CustomMeta { get; set; } = new();
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|