Corpus.ts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  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. editor_uid: string;
  128. updated_at: string;
  129. }
  130. export interface ISentenceDiffResponse {
  131. ok: boolean;
  132. message: string;
  133. data: { rows: ISentenceDiffData[]; count: number };
  134. }
  135. export interface ISentenceRequest {
  136. book: number;
  137. para: number;
  138. wordStart: number;
  139. wordEnd: number;
  140. channel: string;
  141. content: string | null;
  142. contentType?: TContentType;
  143. prEditor?: string;
  144. prId?: string;
  145. prEditAt?: string;
  146. channels?: string;
  147. }
  148. export interface ISentenceData {
  149. id?: string;
  150. book: number;
  151. paragraph: number;
  152. word_start: number;
  153. word_end: number;
  154. content: string;
  155. content_type?: TContentType;
  156. html: string;
  157. editor: IUser;
  158. channel: IChannel;
  159. studio: IStudio;
  160. updated_at: string;
  161. acceptor?: IUser;
  162. pr_edit_at?: string;
  163. suggestionCount?: ISuggestionCount;
  164. }
  165. export interface ISentenceResponse {
  166. ok: boolean;
  167. message: string;
  168. data: ISentenceData;
  169. }
  170. export interface ISentenceListResponse {
  171. ok: boolean;
  172. message: string;
  173. data: { rows: ISentenceData[]; count: number };
  174. }
  175. export interface ISentenceNewRequest {
  176. sentences: ISentenceDiffData[];
  177. channel?: string;
  178. copy?: boolean;
  179. }
  180. export interface ISentenceNewMultiResponse {
  181. ok: boolean;
  182. message: string;
  183. data: number;
  184. }
  185. export interface IPaliToc {
  186. book: number;
  187. paragraph: number;
  188. level: string;
  189. toc: string;
  190. translation?: string;
  191. }
  192. export interface IPaliTocListResponse {
  193. ok: boolean;
  194. message: string;
  195. data: { rows: IPaliToc[]; count: number };
  196. }
  197. export interface IPaliBookListResponse {
  198. name: string;
  199. tag: string[];
  200. children?: IPaliBookListResponse[];
  201. }
  202. export interface IChapterData {
  203. title: string;
  204. toc: string;
  205. book: number;
  206. para: number;
  207. path: string;
  208. tags: TagNode[];
  209. channel: { name: string; owner_uid: string };
  210. studio: IStudio;
  211. channel_id: string;
  212. summary: string;
  213. view: number;
  214. like: number;
  215. status?: number;
  216. progress: number;
  217. progress_line?: number[];
  218. created_at: string;
  219. updated_at: string;
  220. }
  221. export interface IChapterListResponse {
  222. ok: boolean;
  223. message: string;
  224. data: { rows: IChapterData[]; count: number };
  225. }
  226. export interface ILangList {
  227. lang: string;
  228. count: number;
  229. }
  230. export interface IChapterLangListResponse {
  231. ok: boolean;
  232. message: string;
  233. data: { rows: ILangList[]; count: number };
  234. }
  235. export interface ISentencePrRequest {
  236. book: number;
  237. para: number;
  238. begin: number;
  239. end: number;
  240. channel: string;
  241. text: string;
  242. }
  243. export interface ISentencePrResponseData {
  244. book_id: number;
  245. paragraph: number;
  246. word_start: number;
  247. word_end: number;
  248. channel_uid: string;
  249. }
  250. export interface ISentencePrResponse {
  251. ok: boolean;
  252. message: string;
  253. data: {
  254. new: ISentencePrResponseData;
  255. count: number;
  256. webhook: { message: string; ok: boolean };
  257. };
  258. }
  259. export interface ISimSent {
  260. sent: string;
  261. sim: number;
  262. }
  263. export interface ISentenceSimListResponse {
  264. ok: boolean;
  265. message: string;
  266. data: { rows: ISimSent[]; count: number };
  267. }