interface.ts 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783
  1. import { ILiveRoom, LiveRoomStatusEnum } from '@/types/ILiveRoom';
  2. import { IUser } from '@/types/IUser';
  3. export interface IBilibiliLiveUserRecommend {
  4. roomid: number;
  5. uid: number;
  6. title: string;
  7. uname: string;
  8. online: number;
  9. user_cover: string;
  10. user_cover_flag: number;
  11. system_cover: string;
  12. cover: string;
  13. show_cover: string;
  14. link: string;
  15. face: string;
  16. parent_id: number;
  17. parent_name: string;
  18. area_id: number;
  19. area_name: string;
  20. area_v2_parent_id: number;
  21. area_v2_parent_name: string;
  22. area_v2_id: number;
  23. area_v2_name: string;
  24. session_id: string;
  25. group_id: number;
  26. show_callback: string;
  27. click_callback: string;
  28. web_pendent: string;
  29. pk_id: number;
  30. pendant_info: {
  31. '1': {
  32. pendent_id: number;
  33. content: string;
  34. color: string;
  35. pic: string;
  36. position: number;
  37. type: string;
  38. name: string;
  39. };
  40. };
  41. verify: { role: number; desc: string; type: number };
  42. head_box: { name: string; value: string; desc: string };
  43. head_box_type: number;
  44. is_auto_play: number;
  45. flag: number;
  46. watched_show: {
  47. switch: boolean;
  48. num: number;
  49. text_small: string;
  50. text_large: string;
  51. icon: string;
  52. icon_location: number;
  53. icon_web: string;
  54. };
  55. is_nft: number;
  56. nft_dmark: string;
  57. play_together_goods?: any;
  58. watermark: string;
  59. }
  60. export interface IBilibiliLiveRoomInfo {
  61. uid: number;
  62. room_id: number;
  63. short_id: number;
  64. attention: number;
  65. online: number;
  66. is_portrait: boolean;
  67. description: string;
  68. live_status: number;
  69. area_id: number;
  70. parent_area_id: number;
  71. parent_area_name: string;
  72. old_area_id: number;
  73. background: string;
  74. title: string;
  75. user_cover: string;
  76. keyframe: string;
  77. is_strict_room: boolean;
  78. live_time: string;
  79. tags: string;
  80. is_anchor: number;
  81. room_silent_type: string;
  82. room_silent_level: number;
  83. room_silent_second: number;
  84. area_name: string;
  85. pendants: string;
  86. area_pendants: string;
  87. hot_words: string[];
  88. hot_words_status: number;
  89. verify: string;
  90. new_pendants: {
  91. frame: {
  92. name: string;
  93. value: string;
  94. position: number;
  95. desc: string;
  96. area: number;
  97. area_old: number;
  98. bg_color: string;
  99. bg_pic: string;
  100. use_old_area: boolean;
  101. };
  102. badge?: any;
  103. mobile_frame: {
  104. name: string;
  105. value: string;
  106. position: number;
  107. desc: string;
  108. area: number;
  109. area_old: number;
  110. bg_color: string;
  111. bg_pic: string;
  112. use_old_area: boolean;
  113. };
  114. mobile_badge?: any;
  115. };
  116. up_session: string;
  117. pk_status: number;
  118. pk_id: number;
  119. battle_id: number;
  120. allow_change_area_time: number;
  121. allow_upload_cover_time: number;
  122. studio_info: { status: number; master_list: any[] };
  123. }
  124. export interface IFlvStatistics {
  125. url: string;
  126. hasRedirect: boolean;
  127. speed: number;
  128. loaderType: string;
  129. currentSegmentIndex: number;
  130. totalSegmentCount: number;
  131. playerType: string;
  132. decodedFrames: number;
  133. droppedFrames: number;
  134. }
  135. export interface IQiniuData {
  136. id?: number;
  137. user_id?: number;
  138. prefix?: string;
  139. bucket?: string;
  140. qiniu_key?: string;
  141. qiniu_hash?: string;
  142. qiniu_fsize?: number;
  143. qiniu_mimeType?: string;
  144. qiniu_putTime?: number;
  145. qiniu_type?: number;
  146. qiniu_status?: number;
  147. qiniu_md5?: string;
  148. }
  149. export enum WsMessageIsFileEnum {
  150. yes,
  151. no,
  152. }
  153. export enum WsMessageContentTypeEnum {
  154. txt,
  155. img,
  156. video,
  157. }
  158. export enum WsMessageIsShowEnum {
  159. yes,
  160. no,
  161. }
  162. export enum WsMessageIsVerifyEnum {
  163. yes,
  164. no,
  165. }
  166. export enum WsMessageIsBilibiliEnum {
  167. yes,
  168. no,
  169. }
  170. export interface IWsMessage {
  171. id?: number;
  172. username?: string;
  173. origin_username?: string;
  174. content_type?: WsMessageContentTypeEnum;
  175. content?: string;
  176. origin_content?: string;
  177. redbag_send_id?: number;
  178. live_room_id?: number;
  179. user_id?: number;
  180. ip?: string;
  181. msg_type?: DanmuMsgTypeEnum;
  182. user_agent?: string;
  183. send_msg_time?: number;
  184. is_show?: WsMessageIsShowEnum;
  185. is_verify?: WsMessageIsVerifyEnum;
  186. is_bilibili?: WsMessageIsBilibiliEnum;
  187. remark?: string;
  188. user?: IUser;
  189. redbag_send?: IRedbagSend;
  190. created_at?: string;
  191. updated_at?: string;
  192. deleted_at?: string;
  193. }
  194. export interface IRedbagSend {
  195. id?: number;
  196. user_id?: number;
  197. live_room_id?: number;
  198. total_amount?: string;
  199. remaining_amount?: string;
  200. total_nums?: number;
  201. remaining_nums?: number;
  202. remark?: string;
  203. /** 用户信息 */
  204. user?: IUser;
  205. /** 直播间信息 */
  206. live_room?: IGoods;
  207. created_at?: string;
  208. updated_at?: string;
  209. deleted_at?: string;
  210. }
  211. export enum RedbagIsGrantEnum {
  212. yes,
  213. no,
  214. }
  215. export interface IRedbagRecv {
  216. id?: number;
  217. user_id?: number;
  218. redbag_send_id?: number;
  219. amount?: string;
  220. remark?: string;
  221. /** 抢到红包了,是否已发放 */
  222. is_grant?: RedbagIsGrantEnum;
  223. /** 用户信息 */
  224. user?: IUser;
  225. created_at?: string;
  226. updated_at?: string;
  227. deleted_at?: string;
  228. }
  229. export enum GiftRecordIsRecvEnum {
  230. yew,
  231. no,
  232. }
  233. export enum GiftRecordStatusEnum {
  234. ok,
  235. balanceError,
  236. }
  237. export interface IGiftRecord {
  238. id?: number;
  239. is_recv?: GiftRecordIsRecvEnum;
  240. goods_id?: number;
  241. goods_nums?: number;
  242. goods_snapshot?: string;
  243. order_id?: number;
  244. live_room_id?: number;
  245. send_user_id?: number;
  246. recv_user_id?: number;
  247. status?: GiftRecordStatusEnum;
  248. remark?: string;
  249. goods?: IGoods;
  250. created_at?: string;
  251. updated_at?: string;
  252. deleted_at?: string;
  253. }
  254. export enum LoginRecordEnum {
  255. registerUsername,
  256. registerId,
  257. registerQq,
  258. loginUsername,
  259. loginId,
  260. loginQq,
  261. }
  262. export interface ILoginRecord {
  263. id?: number;
  264. user_id?: number;
  265. user_agent?: string;
  266. type?: LoginRecordEnum;
  267. ip?: string;
  268. remark?: string;
  269. user?: IUser;
  270. created_at?: string;
  271. updated_at?: string;
  272. deleted_at?: string;
  273. }
  274. export enum GlobalMsgTypeEnum {
  275. user = 'user',
  276. system = 'system',
  277. activity = 'activity',
  278. }
  279. export interface IGlobalMsg {
  280. id?: number;
  281. user_id?: number;
  282. client_ip?: string;
  283. type?: GlobalMsgTypeEnum;
  284. show?: SwitchEnum;
  285. priority?: number;
  286. content?: string;
  287. remark?: string;
  288. user?: IUser;
  289. created_at?: string;
  290. updated_at?: string;
  291. deleted_at?: string;
  292. }
  293. export interface ISigninStatistics {
  294. id?: number;
  295. user_id?: number;
  296. live_room_id?: number;
  297. /** 当前连续签到次数 */
  298. nums?: number;
  299. /** 历史最高连续签到次数 */
  300. max_nums?: number;
  301. /** 累计签到次数 */
  302. sum_nums?: number;
  303. /** 上次签到日期 */
  304. recently_signin_time?: string;
  305. /** 用户信息 */
  306. username?: string;
  307. user?: IUser;
  308. /** 直播间信息 */
  309. live_room?: ILiveRoom;
  310. created_at?: string;
  311. updated_at?: string;
  312. deleted_at?: string;
  313. }
  314. export interface ISigninRecord {
  315. id?: number;
  316. user_id?: number;
  317. live_room_id?: number;
  318. /** 用户信息 */
  319. username?: string;
  320. user?: IUser;
  321. /** 直播间信息 */
  322. live_room?: ILiveRoom;
  323. created_at?: string;
  324. updated_at?: string;
  325. deleted_at?: string;
  326. }
  327. export enum LiveLineEnum {
  328. 'rtmp-rtc' = 'rtmp-rtc',
  329. rtc = 'rtc',
  330. hls = 'hls',
  331. flv = 'flv',
  332. }
  333. export enum LiveRenderEnum {
  334. video = 'video',
  335. canvas = 'canvas',
  336. }
  337. export enum PayStatusEnum {
  338. wait = 'billd_status_wait',
  339. timeout = 'billd_status_timeout',
  340. /** (交易创建,等待买家付款) */
  341. WAIT_BUYER_PAY = 'WAIT_BUYER_PAY',
  342. /** (交易支付成功) */
  343. TRADE_SUCCESS = 'TRADE_SUCCESS',
  344. /** (未付款交易超时关闭,或支付完成后全额退款) */
  345. TRADE_CLOSED = 'TRADE_CLOSED',
  346. /** (交易结束,不可退款) */
  347. TRADE_FINISHED = 'TRADE_FINISHED',
  348. }
  349. export interface IServerInfo {
  350. project_name: string;
  351. project_env: string;
  352. updated_at: string;
  353. server: {
  354. uname: string;
  355. redisVersion: string;
  356. mysqlVersion: string;
  357. nginxVersion: string;
  358. dockerVersion: string;
  359. pm2Version: string;
  360. nodeVersion: string;
  361. npmVersion: string;
  362. pnpmVersion: string;
  363. };
  364. billd: {
  365. pkgName: string;
  366. pkgVersion: string;
  367. pkgRepository: string;
  368. commitSubject: string;
  369. commitBranch: string;
  370. committerDate: string;
  371. commitHash: string;
  372. committerName: string;
  373. committerEmail: string;
  374. lastBuildDate: string;
  375. nodeVersion: string;
  376. };
  377. }
  378. export enum RankTypeEnum {
  379. liveRoom = 'liveRoom',
  380. user = 'user',
  381. sponsors = 'sponsors',
  382. wallet = 'wallet',
  383. blog = 'blog',
  384. signin = 'signin',
  385. }
  386. export interface IWallet {
  387. id?: number;
  388. user_id?: number;
  389. balance?: number;
  390. user?: IUser;
  391. created_at?: string;
  392. updated_at?: string;
  393. deleted_at?: string;
  394. }
  395. export type IListBase = {
  396. nowPage?: number | string;
  397. pageSize?: number | string;
  398. orderBy?: string;
  399. orderName?: string;
  400. keyWord?: string;
  401. childNowPage?: number | string;
  402. childPageSize?: number | string;
  403. childOrderBy?: string;
  404. childOrderName?: string;
  405. childKeyWord?: string;
  406. rangTimeType?: 'created_at' | 'updated_at' | 'deleted_at';
  407. rangTimeStart?: number | string;
  408. rangTimeEnd?: number | string;
  409. };
  410. export type IList<T> = IListBase & T;
  411. export interface IPaging<T> {
  412. nowPage: number;
  413. pageSize: number;
  414. hasMore: boolean;
  415. total: number;
  416. rows: T[];
  417. }
  418. export enum FormTypeEnum {
  419. 'input' = 'input',
  420. 'password' = 'password',
  421. 'number' = 'number',
  422. 'select' = 'select',
  423. 'radio' = 'radio',
  424. 'checkbox' = 'checkbox',
  425. 'markdown' = 'markdown',
  426. 'switch' = 'switch',
  427. 'upload' = 'upload',
  428. 'treeSelect' = 'treeSelect',
  429. 'datePicker' = 'datePicker',
  430. }
  431. export enum WalletRecordEnum {
  432. reward,
  433. recharge,
  434. signin,
  435. }
  436. export enum WalletRecordAmountStatusEnum {
  437. add,
  438. del,
  439. }
  440. export interface IWalletRecord {
  441. id?: number;
  442. user_id?: number;
  443. order_id?: number;
  444. type?: WalletRecordEnum;
  445. name?: string;
  446. amount?: number;
  447. amount_status?: WalletRecordAmountStatusEnum;
  448. remark?: string;
  449. created_at?: string;
  450. updated_at?: string;
  451. deleted_at?: string;
  452. }
  453. export interface IOrder {
  454. id?: number;
  455. /** 用户信息 */
  456. user?: IUser;
  457. /** 商品信息 */
  458. goods?: IGoods;
  459. /** 直播间信息 */
  460. live_room?: IGoods;
  461. billd_live_user_id?: number;
  462. billd_live_goods_id?: number;
  463. billd_live_live_room_id?: number;
  464. billd_live_order_subject?: string;
  465. /** 判断幂等 */
  466. billd_live_order_version?: number;
  467. client_ip?: string;
  468. product_code?: string;
  469. qr_code?: string;
  470. /** 买家支付宝账号 */
  471. buyer_logon_id?: string;
  472. /** 买家实付金额,单位为元,两位小数。 */
  473. buyer_pay_amount?: string;
  474. /** 买家在支付宝的用户id */
  475. buyer_user_id?: string;
  476. /** 交易的订单金额,单位为元,两位小数。该参数的值为支付时传入的total_amount */
  477. total_amount?: string;
  478. /** 交易中用户支付的可开具发票的金额,单位为元,两位小数。 */
  479. invoice_amount?: string;
  480. /** 积分支付的金额,单位为元,两位小数。 */
  481. point_amount?: string;
  482. /** 实收金额,单位为元,两位小数。该金额为本笔交易,商户账户能够实际收到的金额 */
  483. receipt_amount?: string;
  484. /** 支付宝交易号 */
  485. trade_no?: string;
  486. /** 商家订单号 */
  487. out_trade_no?: string;
  488. /** 交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款) */
  489. trade_status?: PayStatusEnum;
  490. /** 本次交易打款给卖家的时间 */
  491. send_pay_date?: string;
  492. created_at?: string;
  493. updated_at?: string;
  494. deleted_at?: string;
  495. }
  496. export enum GoodsTypeEnum {
  497. support = 'support',
  498. sponsors = 'sponsors',
  499. gift = 'gift',
  500. recharge = 'recharge',
  501. qypShop = 'qypShop',
  502. }
  503. export interface IGoods {
  504. id?: number;
  505. type?: GoodsTypeEnum;
  506. name?: string;
  507. desc?: string;
  508. short_desc?: string;
  509. cover?: string;
  510. price?: number;
  511. original_price?: number;
  512. nums?: number;
  513. pay_nums?: number;
  514. inventory?: number;
  515. badge?: string;
  516. badge_bg?: string;
  517. remark?: string;
  518. created_at?: string;
  519. updated_at?: string;
  520. deleted_at?: string;
  521. }
  522. export interface IUserLiveRoom {
  523. id?: number;
  524. user_id?: number;
  525. live_room_id?: number;
  526. /** 用户信息 */
  527. user?: IUser;
  528. /** 直播间信息 */
  529. live_room?: ILiveRoom;
  530. created_at?: string;
  531. updated_at?: string;
  532. deleted_at?: string;
  533. }
  534. export interface BilldHtmlWebpackPluginLog {
  535. pkgName: string;
  536. pkgVersion: string;
  537. pkgRepository: string;
  538. commitSubject: string;
  539. commitBranch: string;
  540. committerDate: string;
  541. commitHash: string;
  542. committerName: string;
  543. committerEmail: string;
  544. lastBuildDate: string;
  545. }
  546. export enum PlatformEnum {
  547. qqLogin = 'qq_login',
  548. wechatLogin = 'wechat_login',
  549. }
  550. export interface IAuth {
  551. id?: number;
  552. auth_name?: string;
  553. auth_value?: string;
  554. type?: number;
  555. priority?: number | string;
  556. p_id?: number | null;
  557. created_at?: string;
  558. updated_at?: string;
  559. deleted_at?: null;
  560. c_auths?: number[];
  561. }
  562. export interface IRole {
  563. id?: number;
  564. role_name?: string;
  565. role_value?: string;
  566. type?: number;
  567. priority?: number | string;
  568. p_id?: number | null;
  569. created_at?: string;
  570. updated_at?: string;
  571. deleted_at?: null;
  572. role_auths?: number[];
  573. c_roles?: number[];
  574. }
  575. export interface IArea {
  576. id?: number;
  577. name?: string;
  578. /** 备注 */
  579. remark?: string;
  580. /** 权重 */
  581. priority?: number;
  582. area_live_rooms?: IAreaLiveRoom[];
  583. live_rooms?: ILiveRoom[];
  584. live_room_is_show?: SwitchEnum;
  585. live_room_status?: LiveRoomStatusEnum;
  586. created_at?: string;
  587. updated_at?: string;
  588. deleted_at?: string;
  589. }
  590. export interface IAreaLiveRoom {
  591. id?: number;
  592. area_id?: number;
  593. live_room_id?: number;
  594. /** 分区信息 */
  595. area?: IUser;
  596. /** 直播间信息 */
  597. live_room?: ILiveRoom;
  598. created_at?: string;
  599. updated_at?: string;
  600. deleted_at?: string;
  601. }
  602. export interface ISrsPublishStream {
  603. /** 客户端在获取信息时,必须检查ServerID是否改变,改变时就是服务器重启,之前所有的数据都应该作废了。 */
  604. srs_server_id?: string;
  605. srs_service_id?: string;
  606. srs_action?: string;
  607. srs_client_id?: string;
  608. srs_ip?: string;
  609. srs_vhost?: string;
  610. srs_app?: string;
  611. srs_tcUrl?: string;
  612. srs_stream?: string;
  613. srs_param?: string;
  614. srs_stream_url?: string;
  615. srs_stream_id?: string;
  616. }
  617. export type ILive = {
  618. id?: number;
  619. /** 直播平台 */
  620. platform?: LivePlatformEnum;
  621. /** 直播流名称 */
  622. stream_name?: string;
  623. /** 直播流id */
  624. stream_id?: string;
  625. /** 用户id */
  626. user_id?: number;
  627. /** 直播间id */
  628. live_room_id?: number;
  629. /** 备注 */
  630. remark?: string;
  631. /** 直播间信息 */
  632. live_room?: ILiveRoom;
  633. /** 用户信息 */
  634. user?: IUser;
  635. created_at?: string;
  636. updated_at?: string;
  637. deleted_at?: string;
  638. };
  639. /** 直播平台 */
  640. export enum LivePlatformEnum {
  641. rtc,
  642. srs,
  643. tencentcloud_css,
  644. }
  645. export enum MediaTypeEnum {
  646. camera,
  647. screen,
  648. microphone,
  649. txt,
  650. img,
  651. media,
  652. time,
  653. stopwatch,
  654. webAudio,
  655. pk,
  656. metting,
  657. }
  658. export enum DanmuMsgTypeEnum {
  659. danmu,
  660. otherJoin,
  661. userLeaved,
  662. system,
  663. redbag,
  664. reward,
  665. }
  666. export interface ILiveUser {
  667. created_at: number;
  668. client_ip: string;
  669. value: {
  670. live_room_id: number;
  671. live_room_name: string;
  672. user_id: number;
  673. user_username: string;
  674. user_avatar: string;
  675. };
  676. }
  677. export interface ICredential {
  678. expiredTime: number;
  679. expiration: string;
  680. credentials: {
  681. sessionToken: string;
  682. tmpSecretId: string;
  683. tmpSecretKey: string;
  684. };
  685. requestId: string;
  686. startTime: number;
  687. }
  688. export enum SwitchEnum {
  689. yes,
  690. no,
  691. }
  692. export interface IStreamKey {
  693. rtmp_url: string;
  694. obs_server: string;
  695. obs_stream_key: string;
  696. webrtc_url: string;
  697. srt_url: string;
  698. }
  699. export interface IPushRes {
  700. srsPushRes: IStreamKey;
  701. cdnPushRes: IStreamKey;
  702. }