SeemGen/Models/SiteInfo.cs

53 lines
2.0 KiB
C#

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<ContentGroup> ContentGroups { get; set; } = new();
// Navigation property for IdentityUser
public IdentityUser User { get; set; }
// Navigation property for Menu items
public ICollection<MenuItem> MenuItems { get; set; } = new List<MenuItem>();
public DesignTemplate Template { get; set; }
public List<FormDefinition> FormDefinitions { get; set; } = new();
}
}