123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel.DataAnnotations;
- using System.Reflection.Metadata;
- using System.Text;
- using System.Text.Json.Serialization;
- using TEAMModelOS.SDK.Context.Attributes.Azure;
- using TEAMModelOS.SDK.DI;
- namespace TEAMModelOS.SDK.Models
- {
- //產品購買紀錄
- public class SchoolProductCommon : CosmosEntity
- {
- public SchoolProductCommon()
- {
- pk = "Product";
- }
- public string dataType { get; set; }
- public string prodCode { get; set; }
- }
- //產品購買紀錄-序號
- public class SchoolProductSerial : SchoolProductCommon
- {
- public string serial { get; set; }
- public List<deviceBound> deviceBound { get; set; }
- public int clientQty { get; set; }
- public long orderDate { get; set; }
- public long regDate { get; set; }
- public long startDate { get; set; }
- public long endDate { get; set; }
- public int deviceMax { get; set; }
- public object aprule { get; set; }
- public string expireStatus { get; set; }
- public int status { get; set; }
- }
- //產品購買紀錄-服務
- public class SchoolProductService : SchoolProductCommon
- {
- public long orderDate { get; set; }
- public long startDate { get; set; }
- public long endDate { get; set; }
- public int number { get; set; }
- public string unit { get; set; }
- }
- //產品購買紀錄-硬體
- public class SchoolProductHard : SchoolProductCommon
- {
- public long orderDate { get; set; }
- public string model { get; set; }
- public string serial { get; set; }
- }
- //產品一覽
- public class SchoolProductSum
- {
- public SchoolProductSum()
- {
- pk = "ProductSum";
- code = "ProductSum";
- prodinfo = new List<SchoolProductSumProdInfo>();
- serial = new List<SchoolProductSumData>();
- service = new List<SchoolProductSumDataService>();
- hard = new List<SchoolProductSumDataHard>();
- }
- public string pk { get; set; }
- public string code { get; set; }
- public string id { get; set; }
- public List<SchoolProductSumProdInfo> prodinfo { get; set; }
- public List<SchoolProductSumData> serial { get; set; }
- public List<SchoolProductSumDataService> service { get; set; }
- public List<SchoolProductSumDataHard> hard { get; set; }
- //public Aclassone aclassone { get; set; } //是否獨立出來,未定
- }
- public class SchoolProductSumProdInfo
- {
- public string prodCode { get; set; }
- public string prodName { get; set; }
- public string dataType { get; set; }
- public ServiceType serviceType { get; set; }
- }
- public enum ServiceType
- {
- number = 0,
- module = 1,
- space = 2
- }
- //產品一覽 產品內容 基本項
- public class SchoolProductSumData
- {
- public SchoolProductSumData()
- {
- ids = new List<string>();
- }
- public string prodCode { get; set; }
- public List<string> ids { get; set; }
- public int avaliable { get; set; }
- }
- //產品一覽 產品內容 服務
- public class SchoolProductSumDataService : SchoolProductSumData
- {
- public long startDate { get; set; }
- public long endDate { get; set; }
- }
- //產品一覽 產品內容 硬體
- public class SchoolProductSumDataHard : SchoolProductSumData
- {
- public string model { get; set; }
- }
- //服務各產品資訊可用資訊(前端用)
- public class SchoolProductOrder
- {
- public string prodCode { get; set; }
- public int avaliable { get; set; }
- public long avaliableStartDate { get; set; }
- public long avaliableEndDate { get; set; }
- }
- //IES5 學校產品購買紀錄 前端顯示用
- public class SchoolOrder
- {
- public string id { get; set; }
- public long date { get; set; }
- public List<SchoolOrderSerial> serial { get; set; }
- public List<SchoolOrderService> service { get; set; }
- public List<SchoolOrderHard> hard { get; set; }
- }
- //IES5 學校產品購買紀錄 前端顯示用 序號部分
- public class SchoolOrderSerial
- {
- public string prodCode { get; set; }
- public string type { get; set; }
- public string ymwd { get; set; }
- public long sdate { get; set; }
- public long edate { get; set; }
- public int cqty { get; set; }
- public int device { get; set; }
- public object aprule { get; set; }
- public List<string> sn { get; set; }
- }
- //IES5 學校產品購買紀錄 前端顯示用 服務部分
- public class SchoolOrderService
- {
- public string prodCode { get; set; }
- public string type { get; set; }
- public long sdate { get; set; }
- public long edate { get; set; }
- public int number { get; set; }
- public string unit { get; set; }
- }
- //IES5 學校產品購買紀錄 前端顯示用 硬體部分
- public class SchoolOrderHard
- {
- public string prodCode { get; set; }
- public List<string> sn { get; set; }
- }
- //序號資訊(含deviceId、classId、OS等硬體資訊)
- public class SerialInfoBaseWithdeviceBoundExt : SchoolProductSerial
- {
- public new List<deviceBoundExt> deviceBound { get; set; }
- }
- //服務授權期限(主週期資訊) ※code='Product' code='Product-{SchoolID}' dataType='servicePeriod'
- public class SchoolProductServicePeriod : SchoolProductCommon
- {
- public int type { get; set; } //授權週期類型 0:銷售 1:試用
- public long startDate { get; set; }
- public long endDate { get; set; }
- public int number { get; set; }
- public string unit { get; set; }
- }
- /////////////////////////////////////////////////////////
- public class SchoolProduct : CosmosEntity
- {
- public SchoolProduct()
- {
- pk = "Base";
- }
- public List<SerialInfoBaseWithdeviceBound> serial { get; set; }
- public ProductService service { get; set; }
- public List<ProductHard> hard { get; set; }
- public Aclassone aclassone { get; set; }
- }
- public class Aclassone
- {
- public List<string> ids { get; set; } //固定分配的學生ID
- public List<string> outids { get; set; } //過期被回收的學生ID(無法使用,待數量購足後回復移至ids)
- public int total { get; set; }
- public int used { get; set; }
- }
- public class SerialInfoBase
- {
- public string id { get; set; }
- public string serial { get; set; }
- public string prodCode { get; set; }
- public int clientQty { get; set; }
- public long regDate { get; set; }
- public long startDate { get; set; }
- public long endDate { get; set; }
- public int deviceMax { get; set; }
- public object aprule { get; set; }
- public string expireStatus { get; set; }
- public int status { get; set; }
- }
- public class SerialInfoBaseWithdeviceBound : SerialInfoBase
- {
- public List<deviceBound> deviceBound { get; set; }
- }
- //public class SerialInfoBaseWithdeviceBoundExt : SerialInfoBase
- //{
- // public List<deviceBoundExt> deviceBound { get; set; }
- //}
- public class deviceBound
- {
- public string uuid { get; set; }
- public string uuid2 { get; set; }
- public string deviceId { get; set; }
- public string classId { get; set; }
- }
- public class deviceBoundRich : deviceBound
- {
- public string serial { get; set; }
- }
- public class deviceForCoreService
- {
- public string uuid1 { get; set; }
- public string uuid2 { get; set; }
- public string device_id { get; set; }
- public string class_id { get; set; }
- public string sn { get; set; }
- }
- public class deviceFromCoreService
- {
- public string uuid1 { get; set; }
- public string uuid2 { get; set; }
- public string device_id { get; set; }
- public string sn { get; set; }
- public string os { get; set; }
- public string os_ver { get; set; }
- public string local_ip { get; set; }
- public string product_ver { get; set; }
- public string cpu { get; set; }
- public string pc_name { get; set; }
- }
- public class deviceBoundExt : deviceBound
- {
- public string ip { get; set; }
- public string pcname { get; set; }
- public string os { get; set; }
- public string cpu { get; set; }
- public string osver { get; set; }
- }
- public class ProductService
- {
- public List<ServiceMainPeriod> mainperiod { get; set; }
- public List<ServicePeriod> period { get; set; }
- public List<ServiceProduct> product { get; set; }
- }
- public class ServiceMainPeriod
- {
- public string mainPeriodId { get; set; }
- public string mainPeriodtype { get; set; }
- public long startDate { get; set; }
- public long endDate { get; set; }
- public bool active { get; set; }
- }
- public class ServicePeriod
- {
- public string mainPeriodId { get; set; }
- public string periodId { get; set; }
- public long startDate { get; set; }
- public long endDate { get; set; }
- public bool active { get; set; }
- }
- public class ServiceProduct
- {
- public string prodCode { get; set; }
- public bool noperiod { get; set; }
- public string serviceType { get; set; }
- public List<ServiceProductAuth> auth { get; set; }
- public int avaliable { get; set; }
- }
- public class ServiceProductResult
- {
- public string prodCode { get; set; }
- public bool noperiod { get; set; }
- public string serviceType { get; set; }
- public long startDate { get; set; }
- public long endDate { get; set; }
- public int avaliable { get; set; }
- }
- public class ServiceProductAclassoneResult : ServiceProductResult
- {
- public int staUsed { get; set; }
- public int dynUsed { get; set; }
- }
- public class ServiceProductAuth
- {
- public string orderId { get; set; }
- public string periodId { get; set; }
- public int number { get; set; }
- public string unit { get; set; }
- }
- public class ServiceProductAuthHistoryBasic
- {
- public string orderId { get; set; }
- public long orderDate { get; set; }
- public int number { get; set; }
- public string unit { get; set; }
- }
- public class ServiceProductAuthHistory : ServiceProductAuthHistoryBasic
- {
- public List<string> periodIdList { get; set; }
- }
- public class ServiceProductAuthHistoryStartEnd : ServiceProductAuthHistoryBasic
- {
- public long startDate { get; set; }
- public long endDate { get; set; }
- }
- public class ProductHard
- {
- public string prodCode { get; set; }
- public string model { get; set; }
- public string serial { get; set; }
- }
- public class CoreUuid
- {
- public string serial { get; set; }
- public string os { get; set; }
- public string ip { get; set; }
- public string uuid { get; set; }
- public string uuid2 { get; set; }
- public string deviceId { get; set; }
- public string pcname { get; set; }
- public string cpu { get; set; }
- public int ram { get; set; }
- }
- public class periodZone
- {
- public long startDate { get; set; }
- public long endDate { get; set; }
- }
- public class Serial
- {
- public string id { get; set; } //序號ID
- public SerialOrder orderinfo { get; set; } //訂單資訊
- //public SerialProd prod { get; set; } //產品資訊
- public string prodCode { get; set; } //產品八碼
- public int opid { get; set; } //訂單產品識別號
- public string serial { get; set; } //序號
- public int serialType { get; set; } //序號類型 0:單一授權, 1:大量授權
- public int deviceQty { get; set; } = 0; //Device可綁定數量
- public int clientQty { get; set; } = 0; //Client授權數
- public int installQty { get; set; } = 0; //安裝次數
- public string verOrder { get; set; } = null; //購買產品版本資訊
- public string verAdd { get; set; } = null; //版本升級版本
- public string verAddTMId { get; set; } = null; //版本升級者TMID
- //public int? verLimit { get; set; } = null; //特殊序號限制版本
- public string regVer { get; set; } = null; //授權啟用版本
- public long regDate { get; set; } = 0;//授權啟用日 Timestamp(UTC)
- public long regStartDate { get; set; } = 0; //指定最晚啟用日 Timestamp(UTC)
- public int authDateTimeType { get; set; } //時間日期授權方式 0:無時間授權 1:時間授權(年月週日) 2:日期授權(指定日期) 3:日期時間授權(兩種皆有)
- public long authDateEnd { get; set; } = 0; //訂單指定授權到期日 Timestamp(UTC)
- public SerialAuthTimeYMWD authTimeYMWD { get; set; } = null; //訂單指定授權年月週日
- public int authDaysNearEndDate { get; set; } = 0; //到期幾天前通知
- public long authSysStartDate { get; set; } = 0; //系統算出最終授權起始日 Timestamp(UTC)
- public long authSysEndDate { get; set; } = 0; //系統算出最終授權到期日 Timestamp(UTC)
- public int authExistDay { get; set; } //序號未啟用作廢前可存在天數
- public string authExpireStatus { get; set; } //序號啟用狀態 空:未啟用 A:啟用中 S:即將到期 F:已過期
- public SerialAprule aprule { get; set; } = null; //AP自訂義項目
- public SerialSaleClient saleClient { get; set; } = null; //銷售終端
- public SerialEndUser endUser { get; set; } = null; //終端用戶
- public SerialInnerUser innerUser { get; set; } = null; //內部使用者
- public List<SerialUUIDInfo> authEnv { get; set; } = null; //UUID
- public SerialUUIDInfoOnDel authEnvOnDel { get; set; } = null; //最近一個被解綁的用戶環境資訊
- public List<int> attachModule { get; set; } //附屬模組ID列表
- public int[] function { get; set; } = null; //擴展各功能代碼
- public List<SerialUnbindReq> unbindReq { get; set; } = null; //解綁工單
- public int status { get; set; } //可用狀態
- public string extraStatus { get; set; } //可用狀態註釋欄
- public string changeBy { get; set; } //資料變更來源
- public int ttl { get; set; } = -1; //過期刪除秒數
- public long operationTime { get; set; } //最新資料變更時間戳記
- public string dataType { get; } = "serial"; //資料類型
- public static implicit operator Serial(Document v)
- {
- throw new NotImplementedException();
- }
- public class SerialAuthTimeYMWD
- {
- public int y { get; set; } //[Int]年
- public int m { get; set; } //[Int]月
- public int w { get; set; } //[Int]週
- public int d { get; set; } //[Int]日
- }
- public class SerialSaleClient
- {
- public string name { get; set; } //[String]銷售終端姓名
- public string schoolCode { get; set; } = null; //[String]銷售終端學校代碼
- public string clientId { get; set; } = null; //[String]銷售終端客戶ID
- public string tmid { get; set; } = null; //[String]TMID
- public string type { get; set; } //[String]銷售終端資料類型 school:學校 client:經銷商客戶
- public string countryId { get; set; } //[String]國家代碼
- public string provinceId { get; set; } //[String]省代碼
- public string cityId { get; set; } //[String]市代碼
- public string schoolShortCode { get; set; } //[String]學校簡碼
- public string districtId { get; set; } //[String]區代碼
- public string dataCenter { get; set; } //[String]數據中心
- }
- public class SerialEndUser
- {
- public string name { get; set; } //[String]終端用戶姓名
- public string TEAMModelId { get; set; } //[String]終端用戶TMID
- }
- public class SerialInnerUser
- {
- public int uid { get; set; } //[Int]BB系統使用者ID
- public string name { get; set; } //[String]姓名
- public string cityCode { get; set; } //[String]城市代碼
- public string groupName { get; set; } //[String]部門名稱
- }
- public class SerialAprule
- {
- public dynamic series { get; set; } //[String]AP自訂義項目值 逗號分隔字串格式
- public dynamic json { get; set; } //[String]AP自訂義項目值 JSON格式
- }
- }
- //序號所屬訂單資訊
- public class SerialOrder
- {
- public string orderid { get; set; } //[String]訂單編號
- public int orderAudit { get; set; } //[Int]訂單審核狀態 0:待審, 1:通過, 2:否決, 3:問題
- public int orderProperty { get; set; } //[Int]訂單類型 0:銷售,1:展示申請 2:內部申請
- }
- //序號所屬產品資訊
- public class SerialProd
- {
- public string upgradeCode { get; set; } //[String]產品upgradeCode
- public string groupName { get; set; } //[String]產品群組名
- public string prodCode { get; set; } //[String]產品八碼
- public string prodName { get; set; } //[String]產品名
- public int prodType { get; set; } //[Int]產品類型 0:軟體, 1:服務, 2:行動, 3:硬體
- public bool free { get; set; } //[Bol]是否為免費產品 (true:免費/false:收費)
- }
- //序號所屬UUID
- public class SerialUUIDInfo
- {
- public string cesqid { get; set; } //[Int]BB系統用戶環境識別ID
- public int? ceid { get; set; } = null; //[Int]BB系統用戶環境識別ID
- public string uuid { get; set; } //[String]UUID(英數12碼)
- public string uuid2 { get; set; } //[String]UUID2(英數12碼)
- public string olduuid { get; set; } //[String]舊UUID
- public string pcname { get; set; } //[String]電腦名稱
- public string os { get; set; } //[String]OS
- public string cpu { get; set; } //[String]CPU
- public string vga { get; set; } //[String]VGA
- public int? ram { get; set; } //[Int]RAM
- public string ip { get; set; } //[String]IP
- public string regver { get; set; } //[String]註冊版本
- public long regdate { get; set; } //[String]註冊時間 Timestamp(UTC)
- }
- //最近一個被解綁的用戶環境資訊
- public class SerialUUIDInfoOnDel
- {
- public string uuid { get; set; } //[String]UUID(英數12碼)
- public string uuid2 { get; set; } //[String]UUID2(英數12碼)
- public string olduuid { get; set; } //[String]舊UUID
- public string pcname { get; set; } //[String]電腦名稱
- }
- //序號所屬解綁工單(申請中)
- public class SerialUnbindReq
- {
- public string serial { get; set; } //[String]序號
- public string ubrid { get; set; } //[String]解綁工單ID
- public string uuid { get; set; } //[String]UUID(英數12碼)
- public string uuid2 { get; set; } //[String]UUID2(英數12碼)
- public string olduuid { get; set; } //[String]舊UUID
- public string pcname { get; set; } //[String]電腦名稱
- public string tmid { get; set; } //[String]醍魔豆帳號
- public string name { get; set; } //[String]醍魔豆帳號用戶名
- public string countrycode { get; set; } //[String]醍魔豆帳號國家代碼
- public string cellphone { get; set; } //[String]醍魔豆帳號手機號
- public string department { get; set; } //[String]醍魔豆帳號單位名
- public long operationTime { get; set; } //[long]工單產生時間(UnixTime)
- }
- //5代服務、ID服務 授權週期
- public class ServiceClassPeriod
- {
- public string id { get; set; } //OPID
- public string prodCode { get; set; } //產品代碼
- public int type { get; set; } //授權類型 0:銷售 1:試用 (預留欄位)
- public long startDate { get; set; } = 0;//授權啟用日 Timestamp(UTC)
- public long endDate { get; set; } = 0;//授權到期日 Timestamp(UTC)
- public int number { get; set; } //數量
- public string unit { get; set; } //單位
- public ServiceClassSaleClient saleClient { get; set; } //銷售終端
- public object aprule { get; set; }
- public string changeBy { get; set; } //資料變更來源
- public int ttl { get; set; } = -1; //過期刪除秒數
- public long operationTime { get; set; } //最新資料變更時間戳記
- public string dataType { get; set; } //資料類型 "servicePeriod"
- }
- //銷售終端 授權週期版
- public class ServiceClassSaleClient
- {
- public string schoolCode { get; set; } //教育部代碼
- public string schoolShortCode { get; set; } //學校簡碼
- public string clientId { get; set; } //客戶ID
- public string tmid { get; set; } //TMID
- public string name { get; set; } //名稱
- public string type { get; set; } //類型 school、tmid
- public string dataCenter { get; set; } //站點 Global、China
- }
- }
|