using System;
using System.Collections.Generic;

namespace iyixiGames.Domain.Entities
{
    /// <summary>
    /// 表示一个网站或站点的核心实体。
    /// </summary>
    public class Site
    {
        public string Id { get; set; } = Guid.NewGuid().ToString("N"); // 网站唯一标识符
        public string Name { get; set; } = string.Empty; // 网站名称
        public string Domain { get; set; } = string.Empty; // 网站域名 (例如: https://game-pixel.fun)
        public string OwnerUserId { get; set; } = string.Empty; // 网站所有者的用户ID

        // 可选属性：关联团队成员
        public ICollection<SiteTeamMember> TeamMembers { get; set; } = new List<SiteTeamMember>();

        // 可选属性：SEO 信息
        public SiteSeo? Seo { get; set; } // 使用可空类型，因为它是可选的

        // 可选属性：分析数据
        public SiteAnalytics? Analytics { get; set; } // 使用可空类型，因为它是可选的

        // 可选属性：网站配置
        public SiteSettings? Settings { get; set; } // 使用可空类型，因为它是可选的

        public string Status { get; set; } = "active"; // 网站状态 (例如: active, inactive, maintenance)
        public DateTime CreatedAt { get; set; } = DateTime.UtcNow; // 网站创建时间 (UTC)
        public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; // 网站最后更新时间 (UTC)
    }

    /// <summary>
    /// 表示网站的团队成员。
    /// </summary>
    public class SiteTeamMember
    {
        public int Id { get; set; } // 联合主键的ID
        public string SiteId { get; set; } = string.Empty; // 关联的网站ID
        public string UserId { get; set; } = string.Empty; // 团队成员的用户ID
        public string Role { get; set; } = string.Empty; // 成员角色 (例如: admin, developer, editor)

        // 导航属性
        public Site Site { get; set; } = null!;
    }

    /// <summary>
    /// 表示网站的 SEO 信息。
    /// </summary>
    public class SiteSeo
    {
        public string SiteId { get; set; } = string.Empty; // 关联的网站ID，作为主键
        public string Description { get; set; } = string.Empty; // SEO 描述
        public string Keywords { get; set; } = string.Empty; // SEO 关键词，可以用逗号分隔

        // 导航属性
        public Site Site { get; set; } = null!;
    }

    /// <summary>
    /// 表示网站的分析数据。
    /// </summary>
    public class SiteAnalytics
    {
        public string SiteId { get; set; } = string.Empty; // 关联的网站ID，作为主键
        public int DailyVisitors { get; set; } // 日访问量
        public string PopularGames { get; set; } = string.Empty; // 热门游戏，可以存储为逗号分隔字符串或JSON字符串

        // 导航属性
        public Site Site { get; set; } = null!;
    }

    /// <summary>
    /// 表示网站的配置设置。
    /// </summary>
    public class SiteSettings
    {
        public string SiteId { get; set; } = string.Empty; // 关联的网站ID，作为主键
        public string Theme { get; set; } = "light"; // 网站主题 (例如: dark, light)
        public string Language { get; set; } = "en-US"; // 网站语言 (例如: zh-CN, en-US)
        public bool AdEnabled { get; set; } = false; // 是否启用广告

        // 导航属性
        public Site Site { get; set; } = null!;
    }
}