using Microsoft.AspNetCore.Identity; using System.ComponentModel.DataAnnotations; namespace BLAIzor.Models { public class SiteInfo { [Key] public int Id { get; set; } public string? SiteName { get; set; } public string? SiteDescription { get; set; } public string? BrandLogoUrl { get; set; } public string? DefaultColor { get; set; } // Foreign key for IdentityUser public string UserId { get; set; } [Url(ErrorMessage = "The DomainUrl field must be a valid URL.")] public string? DomainUrl { get; set; } // For custom domains [Url(ErrorMessage = "The DefaultUrl field must be a valid URL.")] public string DefaultUrl { get; set; } // For generated subdomains public bool IsPublished { get; set; } public int? TemplateId { get; set; } public bool TTSActive { get; set; } = false; public bool STTActive { get; set; } = false; public string? VoiceId { get; set; } public string? Persona { get; set; } public string? Entity { get; set; } public string? DesignStyle { get; set; } // e.g. "Modern", "Classic", "Photorealistic" public string? DefaultLanguage { get; set; } public string? BackgroundVideo { get; set; } public string? VectorCollectionName { get; set; } public string? EmbeddingService { get; set; } public string? FacebookUrl { get; set; } public string? TwitterUrl { get; set; } public string? InstagramUrl { get; set; } public List ContentGroups { get; set; } = new(); // Navigation property for IdentityUser public IdentityUser User { get; set; } // Navigation property for Menu items public ICollection MenuItems { get; set; } = new List(); public DesignTemplate Template { get; set; } public List FormDefinitions { get; set; } = new(); } }