using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CollaborativePlatformMain.DFEntity.MessageSubUtil
{
    /// <summary>
    /// 
    /// <para>文件名(File Name):     ProjectEntity.cs</para>
    /// 
    /// <para>描述(Description):     项目信息数据</para>
    /// 
    /// <para>数据表(Tables):        nothing</para>
    /// 
    /// <para>作者(Author):          Ou Rui Song</para>
    /// 
    /// <para>日期(Create Date):     2024年5月5日08:30:10</para>
    /// 
    /// 修改记录(Revision History):
    ///     R1:
    ///         修改作者:
    ///         修改日期:
    ///         修改理由:
    /// 
    /// </summary>
    public class ProjectEntity
    {
        /// <summary>
        /// 一级数据
        /// </summary>
        /// <param name="projectName"></param>
        /// <param name="projectEntities"></param>
        public ProjectEntity(string projectName, List<ProjectEntity> projectEntities)
        {
            ProjectName = projectName;
            SubBuildNodes = projectEntities;
        }

        /// <summary>
        ///  项目信息
        /// </summary>
        /// <param name="projectName"></param>
        /// <param name="businessName"></param>
        /// <param name="projectPath"></param>
        public ProjectEntity(string projectName, string businessName, string projectPath)
        {
            ProjectName = projectName;
            BusinessName = businessName;
            ProjectPath = projectPath;
        }

        /// <summary>
        /// 项目信息
        /// </summary>
        /// <param name="projectName"></param>
        /// <param name="subData"></param>
        public ProjectEntity(string projectName, ProjectEntity subData)
        {
            ProjectName = projectName;
            SubData = subData;
        }

        /// <summary>
        /// 团队成员
        /// </summary>
        /// <param name="projectName"></param>
        /// <param name="teamMembers"></param>
        public ProjectEntity(string projectName, Dictionary<string, string> teamMembers)
        {
            ProjectName = projectName;
            TeamMembers = teamMembers;
        }

        /// <summary>
        /// 工作台
        /// </summary>
        /// <param name="projectName"></param>
        /// <param name="operatingFloorData"></param>
        public ProjectEntity(string projectName, OperatingFloorData operatingFloorData)
        {
            ProjectName = projectName;
            OperatingFloorData = operatingFloorData;
        }


        /// <summary>
        /// 唯一id
        /// </summary>
        public string Id { get; set; } = Guid.NewGuid().ToString();

        /// <summary>
        /// 一级：项目名称
        /// 二级：楼栋名称
        /// 三级：楼栋信息
        /// </summary>
        public string ProjectName { get; set; }

        /// <summary>
        /// 业态名称
        /// </summary>
        public string BusinessName { get; set; }

        /// <summary>
        /// 项目地址
        /// </summary>
        public string ProjectPath { get; set; }

        /// <summary>
        /// 子级数据
        /// </summary>
        public List<ProjectEntity> SubBuildNodes { get; set; } = new List<ProjectEntity>();

        /// <summary>
        /// 子级内容
        /// </summary>
        public ProjectEntity SubData { get; set; }

        /// <summary>
        /// 团队成员
        /// </summary>
        public Dictionary<string, string> TeamMembers { get; set; } = new Dictionary<string, string>();

        /// <summary>
        /// 工作台数据
        /// </summary>
        public OperatingFloorData OperatingFloorData { get; set; }
    }
}
