interface.ts 8.8 KB

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