Corpus.ts 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. import type { IStudio } from "../auth/Studio"
  2. import type { IUser } from "../auth/User"
  3. import type { IChannel } from "../channel/Channel"
  4. import type { TContentType } from "../discussion/DiscussionCreate"
  5. import type { ISuggestionCount, IWidgetSentEditInner } from "../template/SentEdit"
  6. import type { TChannelType } from "./Channel"
  7. import type { 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 IPaliPara {
  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. uid: string;
  50. }
  51. export interface IPaliParagraphResponse {
  52. ok: boolean;
  53. message: string;
  54. data: IPaliPara;
  55. }
  56. export interface IPaliListResponse {
  57. ok: boolean;
  58. message: string;
  59. data: { rows: IPaliPara[]; count: number };
  60. }
  61. /**
  62. * progress?view=chapter_channels&book=98&par=22
  63. */
  64. export interface IChapterChannelData {
  65. book: number;
  66. para: number;
  67. uid: string;
  68. channel_id: string;
  69. progress: number;
  70. progress_line?: number[];
  71. updated_at: string;
  72. views: number;
  73. likes: number[];
  74. channel: {
  75. type: TChannelType;
  76. owner_uid: string;
  77. editor_id: number;
  78. name: string;
  79. summary: string;
  80. lang: string;
  81. status: number;
  82. created_at: string;
  83. updated_at: string;
  84. uid: string;
  85. };
  86. studio: IStudio;
  87. }
  88. export interface IChapterChannelListResponse {
  89. ok: boolean;
  90. message: string;
  91. data: { rows: IChapterChannelData[]; count: number };
  92. }
  93. export interface IApiChapterTag {
  94. id: string;
  95. name: string;
  96. count: number;
  97. }
  98. export interface IApiResponseChapterTagList {
  99. ok: boolean;
  100. message: string;
  101. data: { rows: IApiChapterTag[]; count: number };
  102. }
  103. export interface IApiResponseChannelListData {
  104. channel_id: string;
  105. count: number;
  106. channel: {
  107. id: number;
  108. type: TChannelType;
  109. owner_uid: string;
  110. editor_id: number;
  111. name: string;
  112. summary: string;
  113. lang: string;
  114. status: number;
  115. setting: string;
  116. created_at: string;
  117. updated_at: string;
  118. uid: string;
  119. };
  120. studio: IStudio;
  121. }
  122. export interface IApiResponseChannelList {
  123. ok: boolean;
  124. message: string;
  125. data: { rows: IApiResponseChannelListData[]; count: number };
  126. }
  127. export interface ISentenceDiffRequest {
  128. sentences: string[];
  129. channels: string[];
  130. }
  131. export interface ISentenceDiffData {
  132. book_id: number;
  133. paragraph: number;
  134. word_start: number;
  135. word_end: number;
  136. channel_uid: string;
  137. content: string | null;
  138. content_type: string;
  139. editor_uid: string;
  140. updated_at: string;
  141. }
  142. export interface ISentenceDiffResponse {
  143. ok: boolean;
  144. message: string;
  145. data: { rows: ISentenceDiffData[]; count: number };
  146. }
  147. export interface ISentenceRequest {
  148. book: number;
  149. para: number;
  150. wordStart: number;
  151. wordEnd: number;
  152. channel: string;
  153. content: string | null;
  154. contentType?: TContentType;
  155. prEditor?: string;
  156. prId?: string;
  157. prUuid?: string;
  158. prEditAt?: string;
  159. channels?: string;
  160. html?: boolean;
  161. token?: string | null;
  162. }
  163. export interface ISentenceData {
  164. id?: string;
  165. book: number;
  166. paragraph: number;
  167. word_start: number;
  168. word_end: number;
  169. content: string;
  170. content_type?: TContentType;
  171. html: string;
  172. editor: IUser;
  173. channel: IChannel;
  174. studio: IStudio;
  175. updated_at: string;
  176. acceptor?: IUser;
  177. pr_edit_at?: string;
  178. fork_at?: string;
  179. suggestionCount?: ISuggestionCount;
  180. }
  181. export interface ISentenceResponse {
  182. ok: boolean;
  183. message: string;
  184. data: ISentenceData;
  185. }
  186. export interface ISentenceListResponse {
  187. ok: boolean;
  188. message: string;
  189. data: { rows: ISentenceData[]; count: number };
  190. }
  191. export interface ISentenceNewRequest {
  192. sentences: ISentenceDiffData[];
  193. channel?: string;
  194. copy?: boolean;
  195. fork_from?: string;
  196. }
  197. export interface IPaliToc {
  198. book: number;
  199. paragraph: number;
  200. level: string;
  201. toc: string;
  202. translation?: string;
  203. }
  204. export interface IPaliTocListResponse {
  205. ok: boolean;
  206. message: string;
  207. data: { rows: IPaliToc[]; count: number };
  208. }
  209. export interface IChapterToc {
  210. book: number;
  211. paragraph: number;
  212. level: number;
  213. text: string | null;
  214. chapter_len: number;
  215. chapter_strlen: number;
  216. parent: number;
  217. }
  218. export interface IChapterTocListResponse {
  219. ok: boolean;
  220. message: string;
  221. data: { rows: IChapterToc[]; count: number };
  222. }
  223. export interface IPaliBookListResponse {
  224. name: string;
  225. tag: string[];
  226. children?: IPaliBookListResponse[];
  227. }
  228. export interface IChapterData {
  229. title: string;
  230. toc: string;
  231. book: number;
  232. para: number;
  233. path: string;
  234. tags: TagNode[];
  235. channel: { name: string; owner_uid: string };
  236. studio: IStudio;
  237. channel_id: string;
  238. summary: string;
  239. view: number;
  240. like: number;
  241. status?: number;
  242. progress: number;
  243. progress_line?: number[];
  244. created_at: string;
  245. updated_at: string;
  246. }
  247. export interface IChapterListResponse {
  248. ok: boolean;
  249. message: string;
  250. data: { rows: IChapterData[]; count: number };
  251. }
  252. export interface ILangList {
  253. lang: string;
  254. count: number;
  255. }
  256. export interface IChapterLangListResponse {
  257. ok: boolean;
  258. message: string;
  259. data: { rows: ILangList[]; count: number };
  260. }
  261. export interface ISentencePrRequest {
  262. book?: number;
  263. para?: number;
  264. begin?: number;
  265. end?: number;
  266. channel?: string;
  267. text: string;
  268. }
  269. export interface ISentencePrResponseData {
  270. book_id: number;
  271. paragraph: number;
  272. word_start: number;
  273. word_end: number;
  274. channel_uid: string;
  275. }
  276. export interface ISentencePrResponse {
  277. ok: boolean;
  278. message: string;
  279. data: {
  280. new: ISentencePrResponseData;
  281. count: number;
  282. webhook: { message: string; ok: boolean };
  283. };
  284. }
  285. export interface ISimSent {
  286. sent: string;
  287. sim: number;
  288. }
  289. export interface ISentenceSimListResponse {
  290. ok: boolean;
  291. message: string;
  292. data: { rows: ISimSent[]; count: number };
  293. }
  294. export interface ISentenceWbwListResponse {
  295. ok: boolean;
  296. message: string;
  297. data: { rows: IWidgetSentEditInner[]; count: number };
  298. }
  299. export interface IEditableSentence {
  300. ok: boolean;
  301. message: string;
  302. data: IWidgetSentEditInner;
  303. }