using System;
using System.Collections.Generic;
using GxPress.Result.User;

namespace GxPress.Result.App.Missive
{

    /// <summary>
    /// 站内信详情
    /// </summary>
    public class MissiveInfoResult
    {
        /// <summary>
        ///     当前页的数据
        /// </summary>
        public List<MissiveInfo> Items { get; set; }

        /// <summary>
        ///     总数
        /// </summary>
        public int Total { get; set; }
        /// <summary>
        /// 全部回复收集人
        /// </summary>
        /// <value></value>
        public List<MissiveAddresseeUser> missiveAddressees { get; set; }
        /// <summary>
        /// 回复收件人
        /// </summary>
        /// <value></value>
        public MissiveAddresseeUser missiveAddressee { get; set; }
        /// <summary>
        /// 全部回复收集人
        /// </summary>
        /// <value></value>
        public List<GxPress.Result.App.UserMiddle.UserMiddleResult> UserMiddleResults { get; set; }
        /// <summary>
        /// 回复收件人
        /// </summary>
        /// <value></value>
        public GxPress.Result.App.UserMiddle.UserMiddleResult UserMiddleResult { get; set; }


        /// <summary>
        /// 全部回复抄送人
        /// </summary>
        /// <value></value>
        public List<GxPress.Result.App.UserMiddle.UserMiddleResult> UseCcrMiddleResults { get; set; }


    }
    /// <summary>
    /// 站内信详情
    /// </summary>
    public class MissiveInfo
    {
        /// <summary>
        /// 站内信ID
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 标题
        /// </summary>

        public string Title { get; set; }

        /// <summary>
        /// 用户ID
        /// </summary>

        public int UserId { get; set; }

        /// <summary>
        /// 内容
        /// </summary>
        public string Content { get; set; }
        /// <summary>
        /// 内容
        /// </summary>
        public string HtmlContent { get; set; }

        /// <summary>
        /// 用户名
        /// </summary>

        public string UserName { get; set; }

        /// <summary>
        /// 父级ID用于回复
        /// </summary>
        public int ParentId { get; set; }

        /// <summary>
        /// 1 普通 2 匿名
        /// </summary>
        public int MissiveType { get; set; }
        /// <summary>
        /// 1 接收 2 草稿
        /// </summary>
        /// <value></value>
        public int MissiveSendType { get; set; }
        /// <summary>
        /// 收件人
        /// </summary>
        public List<UserResult> AddresseeUsers { get; set; }

        /// <summary>
        /// 抄送人
        /// </summary>
        public List<UserResult> CcUsers { get; set; }
        /// <summary>
        /// 已读数量
        /// </summary>
        public int ReadCount { get; set; }
        /// <summary>
        /// 总量
        /// </summary>
        public int AllCount { get; set; }

        /// <summary>
        /// 收藏数量
        /// </summary>
        public int CollectCount { get; set; }

        /// <summary>
        /// 转发数量
        /// </summary>
        public int RetransmissionCount { get; set; }
        /// <summary>
        /// 点赞数量
        /// </summary>
        public int PraiseCount { get; set; }
        /// <summary>
        /// 发件人姓名
        /// </summary>
        public string SendName { get; set; }
        /// <summary>
        /// json内容格式
        /// </summary>
        public List<ContentJsonData> Data { get; set; }
        /// <summary>
        ///  创建时间
        /// </summary>
        public DateTime? CreatedDate { get; set; }

        /// <summary>
        /// 是否收藏
        /// </summary>
        public bool IsCollect { get; set; }
        /// <summary>
        /// 是否点赞
        /// </summary>
        public bool IsPraise { get; set; }
        /// <summary>
        /// 是否转发
        /// </summary>
        public bool IsRetransmission { get; set; }
        /// <summary>
        /// 是否自己
        /// </summary>
        /// <value></value>
        public bool IsAdmin { get; set; }

        /// <summary>
        /// 是否撤回
        /// </summary>
        /// <value></value>
        public bool IsRecall { get; set; }

        /// <summary>
        /// 新版收件人
        /// </summary>
        /// <value></value>
        public IEnumerable<Entity.UserMiddle.UserMiddle> AddresseeUserMiddles { get; set; }
        /// <summary>
        /// 新版抄送人
        /// </summary>
        /// <value></value>
        public IEnumerable<Entity.UserMiddle.UserMiddle> CcUserMiddles { get; set; }
    }
}
