interface.ts 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  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. srsFlvPull = 'srsFlvPull',
  171. srsHlsPull = 'srsHlsPull',
  172. srsPush = 'srsPush',
  173. webrtcPush = 'webrtcPush',
  174. }
  175. /** 直播间类型 */
  176. export enum LiveRoomTypeEnum {
  177. system, // 系统直播
  178. user_wertc, // 主播使用webrtc直播(用户只能看webrtc直播)
  179. user_srs, // 主播使用srs直播(用户可以看webrtc或flv直播)
  180. user_obs, // 主播使用obs/ffmpeg直播(用户只能看flv直播)
  181. }
  182. export interface BilldHtmlWebpackPluginLog {
  183. pkgName: string;
  184. pkgVersion: string;
  185. pkgRepository: string;
  186. commitSubject: string;
  187. commitBranch: string;
  188. committerDate: string;
  189. commitHash: string;
  190. committerName: string;
  191. committerEmail: string;
  192. lastBuildDate: string;
  193. }
  194. export enum PlatformEnum {
  195. qqLogin = 'qq_login',
  196. }
  197. export interface IAuth {
  198. id?: number;
  199. auth_name?: string;
  200. auth_value?: string;
  201. type?: number;
  202. priority?: number | string;
  203. p_id?: number | null;
  204. created_at?: string;
  205. updated_at?: string;
  206. deleted_at?: null;
  207. c_auths?: number[];
  208. }
  209. export interface IRole {
  210. id?: number;
  211. role_name?: string;
  212. role_value?: string;
  213. type?: number;
  214. priority?: number | string;
  215. p_id?: number | null;
  216. created_at?: string;
  217. updated_at?: string;
  218. deleted_at?: null;
  219. role_auths?: number[];
  220. c_roles?: number[];
  221. }
  222. export interface IUser {
  223. id?: number;
  224. username?: string;
  225. password?: string;
  226. email?: string;
  227. status?: number;
  228. avatar?: string;
  229. desc?: string;
  230. token?: string;
  231. user_roles?: number[];
  232. created_at?: string;
  233. updated_at?: string;
  234. deleted_at?: string;
  235. qq_users?: IQqUser[];
  236. live_rooms?: ILiveRoom[];
  237. wallet?: IWallet;
  238. }
  239. export interface IQqUser {
  240. id?: number;
  241. client_id?: number;
  242. openid?: string;
  243. unionid?: string;
  244. username?: string;
  245. figureurl?: string;
  246. figureurl_1?: string;
  247. figureurl_2?: string;
  248. figureurl_qq_1?: string;
  249. figureurl_qq_2?: string;
  250. constellation?: string;
  251. gender?: string;
  252. city?: string;
  253. province?: string;
  254. year?: string;
  255. created_at?: string;
  256. updated_at?: string;
  257. deleted_at?: any;
  258. }
  259. export interface IArea {
  260. id?: number;
  261. name?: string;
  262. remark?: string;
  263. /** 权重 */
  264. weight?: number;
  265. area_live_rooms?: IAreaLiveRoom[];
  266. created_at?: string;
  267. updated_at?: string;
  268. deleted_at?: string;
  269. }
  270. export interface IAreaLiveRoom {
  271. id?: number;
  272. area_id?: number;
  273. live_room_id?: number;
  274. /** 分区信息 */
  275. area?: IUser;
  276. /** 直播间信息 */
  277. live_room?: ILiveRoom;
  278. created_at?: string;
  279. updated_at?: string;
  280. deleted_at?: string;
  281. }
  282. export interface ILive {
  283. id?: number;
  284. /** 用户信息 */
  285. user?: IUser;
  286. /** 直播间信息 */
  287. live_room?: ILiveRoom;
  288. socket_id?: string;
  289. user_id?: number;
  290. live_room_id?: number;
  291. /** 1开启;2关闭 */
  292. track_video?: number;
  293. /** 1开启;2关闭 */
  294. track_audio?: number;
  295. created_at?: string;
  296. updated_at?: string;
  297. deleted_at?: string;
  298. }
  299. export enum MediaTypeEnum {
  300. camera,
  301. screen,
  302. microphone,
  303. txt,
  304. img,
  305. media,
  306. time,
  307. stopwatch,
  308. webAudio,
  309. }
  310. export enum DanmuMsgTypeEnum {
  311. danmu,
  312. otherJoin,
  313. userLeaved,
  314. }
  315. export interface IUpdateJoinInfo {
  316. socket_id: string;
  317. is_anchor: boolean;
  318. user_info?: IUser;
  319. data: {
  320. live_room_id: number;
  321. track?: { audio: number; video: number };
  322. rtmp_url?: string;
  323. };
  324. }
  325. export interface ILiveUser {
  326. id: string;
  327. rooms?: string[];
  328. userInfo?: IUser;
  329. }
  330. export interface IDanmu {
  331. msgType: DanmuMsgTypeEnum;
  332. msg: string;
  333. socket_id: string;
  334. userInfo?: IUser;
  335. }
  336. export interface IMessage {
  337. socket_id: string;
  338. is_anchor: boolean;
  339. user_info?: IUser;
  340. data: {
  341. msgType: DanmuMsgTypeEnum;
  342. msg: string;
  343. live_room_id: number;
  344. };
  345. }