Corpus.ts 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. import { IStudio } from "../auth/StudioName";
  2. import { IUser } from "../auth/User";
  3. import { IChannel } from "../channel/Channel";
  4. import { TContentType } from "../discussion/DiscussionCreate";
  5. import { ISuggestionCount, IWidgetSentEditInner } from "../template/SentEdit";
  6. import { TChannelType } from "./Channel";
  7. import { TagNode } from "./Tag";
  8. export interface IApiPaliChapterList {
  9. id: string;
  10. book: number;
  11. paragraph: number;
  12. level: number;
  13. toc: string;
  14. title: string;
  15. lenght: number;
  16. chapter_len: number;
  17. next_chapter: number;
  18. prev_chapter: number;
  19. parent: number;
  20. chapter_strlen: number;
  21. path: string;
  22. progress_line?: number[];
  23. }
  24. export interface IPaliChapterListResponse {
  25. ok: boolean;
  26. message: string;
  27. data: { rows: IApiPaliChapterList[]; count: number };
  28. }
  29. export interface IApiResponsePaliChapter {
  30. ok: boolean;
  31. message: string;
  32. data: IApiPaliChapterList;
  33. }
  34. export interface IApiResponsePaliPara {
  35. book: number;
  36. paragraph: number;
  37. level: number;
  38. class: string;
  39. toc: string;
  40. text: string;
  41. html: string;
  42. lenght: number;
  43. chapter_len: number;
  44. next_chapter: number;
  45. prev_chapter: number;
  46. parent: number;
  47. chapter_strlen: number;
  48. path: string;
  49. }
  50. /**
  51. * progress?view=chapter_channels&book=98&par=22
  52. */
  53. export interface IChapterChannelData {
  54. book: number;
  55. para: number;
  56. uid: string;
  57. channel_id: string;
  58. progress: number;
  59. progress_line?: number[];
  60. updated_at: string;
  61. views: number;
  62. likes: number[];
  63. channel: {
  64. type: TChannelType;
  65. owner_uid: string;
  66. editor_id: number;
  67. name: string;
  68. summary: string;
  69. lang: string;
  70. status: number;
  71. created_at: string;
  72. updated_at: string;
  73. uid: string;
  74. };
  75. studio: IStudio;
  76. }
  77. export interface IChapterChannelListResponse {
  78. ok: boolean;
  79. message: string;
  80. data: { rows: IChapterChannelData[]; count: number };
  81. }
  82. export interface IApiChapterTag {
  83. id: string;
  84. name: string;
  85. count: number;
  86. }
  87. export interface IApiResponseChapterTagList {
  88. ok: boolean;
  89. message: string;
  90. data: { rows: IApiChapterTag[]; count: number };
  91. }
  92. export interface IApiResponseChannelListData {
  93. channel_id: string;
  94. count: number;
  95. channel: {
  96. id: number;
  97. type: TChannelType;
  98. owner_uid: string;
  99. editor_id: number;
  100. name: string;
  101. summary: string;
  102. lang: string;
  103. status: number;
  104. setting: string;
  105. created_at: string;
  106. updated_at: string;
  107. uid: string;
  108. };
  109. studio: IStudio;
  110. }
  111. export interface IApiResponseChannelList {
  112. ok: boolean;
  113. message: string;
  114. data: { rows: IApiResponseChannelListData[]; count: number };
  115. }
  116. export interface ISentenceDiffRequest {
  117. sentences: string[];
  118. channels: string[];
  119. }
  120. export interface ISentenceDiffData {
  121. book_id: number;
  122. paragraph: number;
  123. word_start: number;
  124. word_end: number;
  125. channel_uid: string;
  126. content: string;
  127. updated_at: string;
  128. }
  129. export interface ISentenceDiffResponse {
  130. ok: boolean;
  131. message: string;
  132. data: { rows: ISentenceDiffData[]; count: number };
  133. }
  134. export interface ISentenceRequest {
  135. book: number;
  136. para: number;
  137. wordStart: number;
  138. wordEnd: number;
  139. channel: string;
  140. content: string | null;
  141. contentType?: TContentType;
  142. prEditor?: string;
  143. prId?: string;
  144. prEditAt?: string;
  145. channels?: string;
  146. }
  147. export interface ISentenceData {
  148. id?: string;
  149. book: number;
  150. paragraph: number;
  151. word_start: number;
  152. word_end: number;
  153. content: string;
  154. content_type?: TContentType;
  155. html: string;
  156. editor: IUser;
  157. channel: IChannel;
  158. studio: IStudio;
  159. updated_at: string;
  160. acceptor?: IUser;
  161. pr_edit_at?: string;
  162. suggestionCount?: ISuggestionCount;
  163. }
  164. export interface ISentenceResponse {
  165. ok: boolean;
  166. message: string;
  167. data: ISentenceData;
  168. }
  169. export interface ISentenceListResponse {
  170. ok: boolean;
  171. message: string;
  172. data: { rows: ISentenceData[]; count: number };
  173. }
  174. export interface ISentenceNewRequest {
  175. sentences: ISentenceDiffData[];
  176. channel?: string;
  177. }
  178. export interface ISentenceNewMultiResponse {
  179. ok: boolean;
  180. message: string;
  181. data: number;
  182. }
  183. export interface IPaliToc {
  184. book: number;
  185. paragraph: number;
  186. level: string;
  187. toc: string;
  188. translation?: string;
  189. }
  190. export interface IPaliTocListResponse {
  191. ok: boolean;
  192. message: string;
  193. data: { rows: IPaliToc[]; count: number };
  194. }
  195. export interface IPaliBookListResponse {
  196. name: string;
  197. tag: string[];
  198. children?: IPaliBookListResponse[];
  199. }
  200. export interface IChapterData {
  201. title: string;
  202. toc: string;
  203. book: number;
  204. para: number;
  205. path: string;
  206. tags: TagNode[];
  207. channel: { name: string; owner_uid: string };
  208. studio: IStudio;
  209. channel_id: string;
  210. summary: string;
  211. view: number;
  212. like: number;
  213. status?: number;
  214. progress: number;
  215. progress_line?: number[];
  216. created_at: string;
  217. updated_at: string;
  218. }
  219. export interface IChapterListResponse {
  220. ok: boolean;
  221. message: string;
  222. data: { rows: IChapterData[]; count: number };
  223. }
  224. export interface ILangList {
  225. lang: string;
  226. count: number;
  227. }
  228. export interface IChapterLangListResponse {
  229. ok: boolean;
  230. message: string;
  231. data: { rows: ILangList[]; count: number };
  232. }
  233. export interface ISentencePrRequest {
  234. book: number;
  235. para: number;
  236. begin: number;
  237. end: number;
  238. channel: string;
  239. text: string;
  240. }
  241. export interface ISentencePrResponseData {
  242. book_id: number;
  243. paragraph: number;
  244. word_start: number;
  245. word_end: number;
  246. channel_uid: string;
  247. }
  248. export interface ISentencePrResponse {
  249. ok: boolean;
  250. message: string;
  251. data: {
  252. new: ISentencePrResponseData;
  253. count: number;
  254. webhook: { message: string; ok: boolean };
  255. };
  256. }
  257. export interface ISentenceSimListResponse {
  258. ok: boolean;
  259. message: string;
  260. data: { rows: IWidgetSentEditInner[]; count: number };
  261. }