using Microsoft.Azure.Cosmos.Table;
using System;
using System.Collections.Generic;
using System.Text;
using TEAMModelOS.SDK.Models.Cosmos.Common;

namespace TEAMModelOS.SDK.Models
{


    /// <summary>
    /// 前端多语言处理
    /// </summary>
    //public string title { get; set; }
    /// <summary>
    /// 前端多语言处理
    /// </summary>
    //public string content { get; set; }
    /*
     {
        "title":"通知标题",
        "type":"通知类型",
        "level":"重要程度",
        "content":"通知内容",
        "data":"传输数据josn",
        "stime":"发起时间戳",
        "etime":"到期时间戳",
        "id":"通知id",
        "code":"发起人"
        "pk":"notice"
    }
     */
    /// <summary>
    /// 通知主体存放位置：/notice/{业务id}.json
 
    /// 活跃通知放在CosmosDB  Common表中，并设置"ttl":2592000,不能超过30天（2592000），一天（3600），一周（25200），允许删除
    /// 过期通知存放至blob中，存放位置, 允许被删除，直接删除记录
    ///             stuid：/student/stuid/receiver/xxxx时间戳排序.json
    ///             tmdid：/receiver/xxxx时间戳排序.json
    /// </summary>
    public class Notice
    { 
        /// <summary>
        ///  訊息種類 message:訊息，收取會另存至儲存體(blob or table) notice:通知，收取後不另存 
        /// XXXX通知的业务类型，做什么事情用，具体业务类型再定义。 vote-join 
        /// </summary>
        public string type { get; set; }
        /// <summary>
        /// 重要等级 emergency、high、normal、low 1置顶，2非常重要，3重要，4普通消息，5不重要
        /// </summary>
        public string priority { get; set; }
        /// <summary>
        /// 發信源服務  IES5
        /// </summary>
        public string from { get; set; } = "IES5";
        /// <summary>
        /// 服務收信對象 若任一服務皆可收，則不填；指定某服務才收，則填服務名稱 例:HiT
        /// </summary>
        public string toservice { get; set; }
        /// <summary>
        /// 到期时间，发给接收者的cosmosDB ttl是从当前时间到结束时间为止
        /// </summary>
        public long expire { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public long creation { get; set; }
        /// <summary>
        /// 消息id 
        /// </summary>
        public string msgId { get; set; }
        /// <summary>
        /// 正文內容
        /// </summary>
        public Body body { get; set; }
        /// <summary>
        /// 创建者
        /// </summary>
        public string creatorId { get; set; }
        /// <summary>
        /// 源数据的学校编码
        /// </summary>
        public string school { get; set; }
        /// <summary>
        /// 源数据的scope
        /// </summary>
        public string scope { get; set; }
        /// 通知主体的被通知人存放位置:  /notice/{业务id}_receiver.json
        /// <summary>
        /// 被通知的醍摩豆账号
        /// </summary>
        public List<string> tmdids { get; set; }
        /// <summary>
        /// 被通知的学校学生账号
        /// </summary>
        public List<Students> stuids { get; set; }
       
    }

    /// <summary>
    /// 传输数据josn
    /// </summary>
    public class Body {
        /// <summary>
        /// 业务类型  vote-join  exam-join  survey-join
        /// </summary>
        public string biztype { get; set; }
        /// <summary>
        /// 源数据的id
        /// </summary>
        public string sid { get; set; }
        /// <summary>
        /// 源数据的code
        /// </summary>
        public string scode { get; set; }
        /// <summary>
        /// 源数据的pk
        /// </summary>
        public string spk { get; set; }
      
    }
    /*
    {
        "id":"通知id"
        "code":"接收者1",
        "status":"接收状态/已发送/已查看"，
        "pk":"receiver",
        "ttl":2592000,不能超过30天（2592000），一天（3600），一周（25200）
    }
     */
    /// <summary>
    /// id  :源数据id
    /// code:Receiver-{hbcn}-{rid}
    /// ttl :Notice的etime-当前时间戳
    /// pk  :Receiver
    /// </summary>
    /// /student/{stuid}/
    public class Receiver  
    {
        public string id { get; set; }
        /// <summary>
        /// 0 已发送，1已查看，2已处理，-1已过期
        /// </summary>
        public int status { get; set; }=0;
        /// <summary>
        /// 创建时间
        /// </summary>
        public long ctime { get; set; }
        /// <summary>
        /// 通知url
        /// </summary>
        public string urlNotice { get; set; }

    }
}
