interface.ts 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. // 这里放项目里面的类型
  2. export enum LiveLineEnum {
  3. rtc = 'rtc',
  4. hls = 'hls',
  5. flv = 'flv',
  6. }
  7. export enum PayStatusEnum {
  8. error = 'error',
  9. WAIT_BUYER_PAY = 'WAIT_BUYER_PAY',
  10. TRADE_SUCCESS = 'TRADE_SUCCESS',
  11. }
  12. export interface IServerInfo {
  13. project_name: string;
  14. project_env: string;
  15. updated_at: string;
  16. server: {
  17. uname: string;
  18. redisVersion: string;
  19. mysqlVersion: string;
  20. nginxVersion: string;
  21. dockerVersion: string;
  22. pm2Version: string;
  23. nodeVersion: string;
  24. npmVersion: string;
  25. pnpmVersion: string;
  26. };
  27. billd: {
  28. pkgName: string;
  29. pkgVersion: string;
  30. pkgRepository: string;
  31. commitSubject: string;
  32. commitBranch: string;
  33. committerDate: string;
  34. commitHash: string;
  35. committerName: string;
  36. committerEmail: string;
  37. lastBuildDate: string;
  38. nodeVersion: string;
  39. };
  40. }
  41. export enum RankTypeEnum {
  42. liveRoom = 'liveRoom',
  43. user = 'user',
  44. sponsors = 'sponsors',
  45. wallet = 'wallet',
  46. blog = 'blog',
  47. }
  48. export interface IWallet {
  49. id?: number;
  50. user_id?: number;
  51. balance?: string;
  52. created_at?: string;
  53. updated_at?: string;
  54. deleted_at?: string;
  55. }
  56. export type IList<T> = {
  57. nowPage?: string;
  58. pageSize?: string;
  59. orderBy?: string;
  60. orderName?: string;
  61. keyWord?: string;
  62. rangTimeType?: 'created_at' | 'updated_at' | 'deleted_at';
  63. rangTimeStart?: string;
  64. rangTimeEnd?: string;
  65. } & T;
  66. export interface IPaging<T> {
  67. nowPage: number;
  68. pageSize: number;
  69. hasMore: boolean;
  70. total: number;
  71. rows: T[];
  72. }
  73. export interface IOrder {
  74. id?: number;
  75. /** 用户信息 */
  76. user?: IUser;
  77. /** 商品信息 */
  78. goods?: IGoods;
  79. billd_live_user_id?: number;
  80. billd_live_goods_id?: number;
  81. billd_live_live_room_id?: number;
  82. /** 判断幂等 */
  83. billd_live_order_version?: number;
  84. billd_live_order_subject?: string;
  85. product_code?: string;
  86. qr_code?: string;
  87. /** 买家支付宝账号 */
  88. buyer_logon_id?: string;
  89. /** 买家实付金额,单位为元,两位小数。 */
  90. buyer_pay_amount?: string;
  91. /** 买家在支付宝的用户id */
  92. buyer_user_id?: string;
  93. /** 交易的订单金额,单位为元,两位小数。该参数的值为支付时传入的total_amount */
  94. total_amount?: string;
  95. /** 交易中用户支付的可开具发票的金额,单位为元,两位小数。 */
  96. invoice_amount?: string;
  97. /** 积分支付的金额,单位为元,两位小数。 */
  98. point_amount?: string;
  99. /** 实收金额,单位为元,两位小数。该金额为本笔交易,商户账户能够实际收到的金额 */
  100. receipt_amount?: string;
  101. /** 支付宝交易号 */
  102. trade_no?: string;
  103. /** 商家订单号 */
  104. out_trade_no?: string;
  105. /** 交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款) */
  106. trade_status?: string;
  107. /** 本次交易打款给卖家的时间 */
  108. send_pay_date?: string;
  109. created_at?: string;
  110. updated_at?: string;
  111. deleted_at?: string;
  112. }
  113. export enum GoodsTypeEnum {
  114. support = 'support',
  115. sponsors = 'sponsors',
  116. gift = 'gift',
  117. recharge = 'recharge',
  118. }
  119. export interface IGoods {
  120. id?: number;
  121. type?: GoodsTypeEnum;
  122. name?: string;
  123. desc?: string;
  124. short_desc?: string;
  125. cover?: string;
  126. price?: string;
  127. original_price?: string;
  128. nums?: number;
  129. badge?: string;
  130. badge_bg?: string;
  131. remark?: string;
  132. created_at?: string;
  133. updated_at?: string;
  134. deleted_at?: string;
  135. }
  136. export interface ILiveRoom {
  137. id?: number;
  138. /** 用户信息 */
  139. user?: IUser;
  140. /** 用户信息 */
  141. users?: IUser[];
  142. /** 分区信息 */
  143. area?: IArea;
  144. /** 直播信息 */
  145. live?: ILive;
  146. user_live_room?: IUserLiveRoom & { user: IUser };
  147. name?: string;
  148. /** 1:使用cdn;2:不使用cdn */
  149. cdn?: number;
  150. /** 权重 */
  151. weight?: number;
  152. key?: string;
  153. type?: LiveRoomTypeEnum;
  154. cover_img?: string;
  155. rtmp_url?: string;
  156. flv_url?: string;
  157. hls_url?: string;
  158. created_at?: string;
  159. updated_at?: string;
  160. deleted_at?: string;
  161. }
  162. export interface IUserLiveRoom {
  163. id?: number;
  164. user_id?: number;
  165. live_room_id?: number;
  166. /** 用户信息 */
  167. user?: IUser;
  168. /** 直播间信息 */
  169. live_room?: ILiveRoom;
  170. created_at?: string;
  171. updated_at?: string;
  172. deleted_at?: string;
  173. }
  174. /** 直播间类型 */
  175. export enum LiveRoomTypeEnum {
  176. system, // 系统直播
  177. user_wertc, // 主播使用webrtc直播
  178. user_srs, // 主播使用srs直播
  179. user_obs, // 主播使用obs/ffmpeg直播
  180. }
  181. export interface BilldHtmlWebpackPluginLog {
  182. pkgName: string;
  183. pkgVersion: string;
  184. pkgRepository: string;
  185. commitSubject: string;
  186. commitBranch: string;
  187. committerDate: string;
  188. commitHash: string;
  189. committerName: string;
  190. committerEmail: string;
  191. lastBuildDate: string;
  192. }
  193. export enum PlatformEnum {
  194. qqLogin = 'qq_login',
  195. }
  196. export interface IAuth {
  197. id?: number;
  198. auth_name?: string;
  199. auth_value?: string;
  200. type?: number;
  201. priority?: number | string;
  202. p_id?: number | null;
  203. created_at?: string;
  204. updated_at?: string;
  205. deleted_at?: null;
  206. c_auths?: number[];
  207. }
  208. export interface IRole {
  209. id?: number;
  210. role_name?: string;
  211. role_value?: string;
  212. type?: number;
  213. priority?: number | string;
  214. p_id?: number | null;
  215. created_at?: string;
  216. updated_at?: string;
  217. deleted_at?: null;
  218. role_auths?: number[];
  219. c_roles?: number[];
  220. }
  221. export interface IUser {
  222. id?: number;
  223. username?: string;
  224. password?: string;
  225. email?: string;
  226. status?: number;
  227. avatar?: string;
  228. desc?: string;
  229. token?: string;
  230. user_roles?: number[];
  231. created_at?: string;
  232. updated_at?: string;
  233. deleted_at?: string;
  234. qq_users?: IQqUser[];
  235. live_rooms?: ILiveRoom[];
  236. wallet?: IWallet;
  237. }
  238. export interface IQqUser {
  239. id?: number;
  240. client_id?: number;
  241. openid?: string;
  242. unionid?: string;
  243. username?: string;
  244. figureurl?: string;
  245. figureurl_1?: string;
  246. figureurl_2?: string;
  247. figureurl_qq_1?: string;
  248. figureurl_qq_2?: string;
  249. constellation?: string;
  250. gender?: string;
  251. city?: string;
  252. province?: string;
  253. year?: string;
  254. created_at?: string;
  255. updated_at?: string;
  256. deleted_at?: any;
  257. }
  258. export interface IArea {
  259. id?: number;
  260. name?: string;
  261. remark?: string;
  262. /** 权重 */
  263. weight?: number;
  264. area_live_rooms?: IAreaLiveRoom[];
  265. created_at?: string;
  266. updated_at?: string;
  267. deleted_at?: string;
  268. }
  269. export interface IAreaLiveRoom {
  270. id?: number;
  271. area_id?: number;
  272. live_room_id?: number;
  273. /** 分区信息 */
  274. area?: IUser;
  275. /** 直播间信息 */
  276. live_room?: ILiveRoom;
  277. created_at?: string;
  278. updated_at?: string;
  279. deleted_at?: string;
  280. }
  281. export interface ILive {
  282. id?: number;
  283. /** 用户信息 */
  284. user?: IUser;
  285. /** 直播间信息 */
  286. live_room?: ILiveRoom;
  287. socket_id?: string;
  288. user_id?: number;
  289. live_room_id?: number;
  290. /** 1开启;2关闭 */
  291. track_video?: number;
  292. /** 1开启;2关闭 */
  293. track_audio?: number;
  294. created_at?: string;
  295. updated_at?: string;
  296. deleted_at?: string;
  297. }
  298. export enum MediaTypeEnum {
  299. camera,
  300. screen,
  301. microphone,
  302. txt,
  303. img,
  304. media,
  305. time,
  306. stopwatch,
  307. webAudio,
  308. }
  309. export enum DanmuMsgTypeEnum {
  310. danmu,
  311. otherJoin,
  312. userLeaved,
  313. }
  314. export interface IUpdateJoinInfo {
  315. socket_id: string;
  316. is_anchor: boolean;
  317. user_info?: IUser;
  318. data: {
  319. live_room_id: number;
  320. track?: { audio: number; video: number };
  321. rtmp_url?: string;
  322. };
  323. }
  324. export interface ILiveUser {
  325. id: string;
  326. rooms?: string[];
  327. userInfo?: IUser;
  328. }
  329. export interface IDanmu {
  330. msgType: DanmuMsgTypeEnum;
  331. msg: string;
  332. socket_id: string;
  333. userInfo?: IUser;
  334. }
  335. export interface IMessage {
  336. socket_id: string;
  337. is_anchor: boolean;
  338. user_info?: IUser;
  339. data: {
  340. msgType: DanmuMsgTypeEnum;
  341. msg: string;
  342. live_room_id: number;
  343. };
  344. }