pagination.go 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514
  1. // Code generated by ent, DO NOT EDIT.
  2. package ent
  3. import (
  4. "context"
  5. "fmt"
  6. "wechat-api/ent/agent"
  7. "wechat-api/ent/agentbase"
  8. "wechat-api/ent/aliyunavatar"
  9. "wechat-api/ent/batchmsg"
  10. "wechat-api/ent/category"
  11. "wechat-api/ent/chatrecords"
  12. "wechat-api/ent/chatsession"
  13. "wechat-api/ent/contact"
  14. "wechat-api/ent/employee"
  15. "wechat-api/ent/employeeconfig"
  16. "wechat-api/ent/label"
  17. "wechat-api/ent/labelrelationship"
  18. "wechat-api/ent/message"
  19. "wechat-api/ent/messagerecords"
  20. "wechat-api/ent/msg"
  21. "wechat-api/ent/server"
  22. "wechat-api/ent/sopnode"
  23. "wechat-api/ent/sopstage"
  24. "wechat-api/ent/soptask"
  25. "wechat-api/ent/token"
  26. "wechat-api/ent/tutorial"
  27. "wechat-api/ent/usagedetail"
  28. "wechat-api/ent/usagetotal"
  29. "wechat-api/ent/workexperience"
  30. "wechat-api/ent/wpchatroom"
  31. "wechat-api/ent/wpchatroommember"
  32. "wechat-api/ent/wx"
  33. "wechat-api/ent/wxcard"
  34. "wechat-api/ent/wxcarduser"
  35. "wechat-api/ent/wxcardvisit"
  36. )
  37. const errInvalidPage = "INVALID_PAGE"
  38. const (
  39. listField = "list"
  40. pageNumField = "pageNum"
  41. pageSizeField = "pageSize"
  42. )
  43. type PageDetails struct {
  44. Page uint64 `json:"page"`
  45. Size uint64 `json:"size"`
  46. Total uint64 `json:"total"`
  47. }
  48. // OrderDirection defines the directions in which to order a list of items.
  49. type OrderDirection string
  50. const (
  51. // OrderDirectionAsc specifies an ascending order.
  52. OrderDirectionAsc OrderDirection = "ASC"
  53. // OrderDirectionDesc specifies a descending order.
  54. OrderDirectionDesc OrderDirection = "DESC"
  55. )
  56. // Validate the order direction value.
  57. func (o OrderDirection) Validate() error {
  58. if o != OrderDirectionAsc && o != OrderDirectionDesc {
  59. return fmt.Errorf("%s is not a valid OrderDirection", o)
  60. }
  61. return nil
  62. }
  63. // String implements fmt.Stringer interface.
  64. func (o OrderDirection) String() string {
  65. return string(o)
  66. }
  67. func (o OrderDirection) reverse() OrderDirection {
  68. if o == OrderDirectionDesc {
  69. return OrderDirectionAsc
  70. }
  71. return OrderDirectionDesc
  72. }
  73. const errInvalidPagination = "INVALID_PAGINATION"
  74. type AgentPager struct {
  75. Order agent.OrderOption
  76. Filter func(*AgentQuery) (*AgentQuery, error)
  77. }
  78. // AgentPaginateOption enables pagination customization.
  79. type AgentPaginateOption func(*AgentPager)
  80. // DefaultAgentOrder is the default ordering of Agent.
  81. var DefaultAgentOrder = Desc(agent.FieldID)
  82. func newAgentPager(opts []AgentPaginateOption) (*AgentPager, error) {
  83. pager := &AgentPager{}
  84. for _, opt := range opts {
  85. opt(pager)
  86. }
  87. if pager.Order == nil {
  88. pager.Order = DefaultAgentOrder
  89. }
  90. return pager, nil
  91. }
  92. func (p *AgentPager) ApplyFilter(query *AgentQuery) (*AgentQuery, error) {
  93. if p.Filter != nil {
  94. return p.Filter(query)
  95. }
  96. return query, nil
  97. }
  98. // AgentPageList is Agent PageList result.
  99. type AgentPageList struct {
  100. List []*Agent `json:"list"`
  101. PageDetails *PageDetails `json:"pageDetails"`
  102. }
  103. func (a *AgentQuery) Page(
  104. ctx context.Context, pageNum uint64, pageSize uint64, opts ...AgentPaginateOption,
  105. ) (*AgentPageList, error) {
  106. pager, err := newAgentPager(opts)
  107. if err != nil {
  108. return nil, err
  109. }
  110. if a, err = pager.ApplyFilter(a); err != nil {
  111. return nil, err
  112. }
  113. ret := &AgentPageList{}
  114. ret.PageDetails = &PageDetails{
  115. Page: pageNum,
  116. Size: pageSize,
  117. }
  118. query := a.Clone()
  119. query.ctx.Fields = nil
  120. count, err := query.Count(ctx)
  121. if err != nil {
  122. return nil, err
  123. }
  124. ret.PageDetails.Total = uint64(count)
  125. if pager.Order != nil {
  126. a = a.Order(pager.Order)
  127. } else {
  128. a = a.Order(DefaultAgentOrder)
  129. }
  130. a = a.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  131. list, err := a.All(ctx)
  132. if err != nil {
  133. return nil, err
  134. }
  135. ret.List = list
  136. return ret, nil
  137. }
  138. type AgentBasePager struct {
  139. Order agentbase.OrderOption
  140. Filter func(*AgentBaseQuery) (*AgentBaseQuery, error)
  141. }
  142. // AgentBasePaginateOption enables pagination customization.
  143. type AgentBasePaginateOption func(*AgentBasePager)
  144. // DefaultAgentBaseOrder is the default ordering of AgentBase.
  145. var DefaultAgentBaseOrder = Desc(agentbase.FieldID)
  146. func newAgentBasePager(opts []AgentBasePaginateOption) (*AgentBasePager, error) {
  147. pager := &AgentBasePager{}
  148. for _, opt := range opts {
  149. opt(pager)
  150. }
  151. if pager.Order == nil {
  152. pager.Order = DefaultAgentBaseOrder
  153. }
  154. return pager, nil
  155. }
  156. func (p *AgentBasePager) ApplyFilter(query *AgentBaseQuery) (*AgentBaseQuery, error) {
  157. if p.Filter != nil {
  158. return p.Filter(query)
  159. }
  160. return query, nil
  161. }
  162. // AgentBasePageList is AgentBase PageList result.
  163. type AgentBasePageList struct {
  164. List []*AgentBase `json:"list"`
  165. PageDetails *PageDetails `json:"pageDetails"`
  166. }
  167. func (ab *AgentBaseQuery) Page(
  168. ctx context.Context, pageNum uint64, pageSize uint64, opts ...AgentBasePaginateOption,
  169. ) (*AgentBasePageList, error) {
  170. pager, err := newAgentBasePager(opts)
  171. if err != nil {
  172. return nil, err
  173. }
  174. if ab, err = pager.ApplyFilter(ab); err != nil {
  175. return nil, err
  176. }
  177. ret := &AgentBasePageList{}
  178. ret.PageDetails = &PageDetails{
  179. Page: pageNum,
  180. Size: pageSize,
  181. }
  182. query := ab.Clone()
  183. query.ctx.Fields = nil
  184. count, err := query.Count(ctx)
  185. if err != nil {
  186. return nil, err
  187. }
  188. ret.PageDetails.Total = uint64(count)
  189. if pager.Order != nil {
  190. ab = ab.Order(pager.Order)
  191. } else {
  192. ab = ab.Order(DefaultAgentBaseOrder)
  193. }
  194. ab = ab.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  195. list, err := ab.All(ctx)
  196. if err != nil {
  197. return nil, err
  198. }
  199. ret.List = list
  200. return ret, nil
  201. }
  202. type AliyunAvatarPager struct {
  203. Order aliyunavatar.OrderOption
  204. Filter func(*AliyunAvatarQuery) (*AliyunAvatarQuery, error)
  205. }
  206. // AliyunAvatarPaginateOption enables pagination customization.
  207. type AliyunAvatarPaginateOption func(*AliyunAvatarPager)
  208. // DefaultAliyunAvatarOrder is the default ordering of AliyunAvatar.
  209. var DefaultAliyunAvatarOrder = Desc(aliyunavatar.FieldID)
  210. func newAliyunAvatarPager(opts []AliyunAvatarPaginateOption) (*AliyunAvatarPager, error) {
  211. pager := &AliyunAvatarPager{}
  212. for _, opt := range opts {
  213. opt(pager)
  214. }
  215. if pager.Order == nil {
  216. pager.Order = DefaultAliyunAvatarOrder
  217. }
  218. return pager, nil
  219. }
  220. func (p *AliyunAvatarPager) ApplyFilter(query *AliyunAvatarQuery) (*AliyunAvatarQuery, error) {
  221. if p.Filter != nil {
  222. return p.Filter(query)
  223. }
  224. return query, nil
  225. }
  226. // AliyunAvatarPageList is AliyunAvatar PageList result.
  227. type AliyunAvatarPageList struct {
  228. List []*AliyunAvatar `json:"list"`
  229. PageDetails *PageDetails `json:"pageDetails"`
  230. }
  231. func (aa *AliyunAvatarQuery) Page(
  232. ctx context.Context, pageNum uint64, pageSize uint64, opts ...AliyunAvatarPaginateOption,
  233. ) (*AliyunAvatarPageList, error) {
  234. pager, err := newAliyunAvatarPager(opts)
  235. if err != nil {
  236. return nil, err
  237. }
  238. if aa, err = pager.ApplyFilter(aa); err != nil {
  239. return nil, err
  240. }
  241. ret := &AliyunAvatarPageList{}
  242. ret.PageDetails = &PageDetails{
  243. Page: pageNum,
  244. Size: pageSize,
  245. }
  246. query := aa.Clone()
  247. query.ctx.Fields = nil
  248. count, err := query.Count(ctx)
  249. if err != nil {
  250. return nil, err
  251. }
  252. ret.PageDetails.Total = uint64(count)
  253. if pager.Order != nil {
  254. aa = aa.Order(pager.Order)
  255. } else {
  256. aa = aa.Order(DefaultAliyunAvatarOrder)
  257. }
  258. aa = aa.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  259. list, err := aa.All(ctx)
  260. if err != nil {
  261. return nil, err
  262. }
  263. ret.List = list
  264. return ret, nil
  265. }
  266. type BatchMsgPager struct {
  267. Order batchmsg.OrderOption
  268. Filter func(*BatchMsgQuery) (*BatchMsgQuery, error)
  269. }
  270. // BatchMsgPaginateOption enables pagination customization.
  271. type BatchMsgPaginateOption func(*BatchMsgPager)
  272. // DefaultBatchMsgOrder is the default ordering of BatchMsg.
  273. var DefaultBatchMsgOrder = Desc(batchmsg.FieldID)
  274. func newBatchMsgPager(opts []BatchMsgPaginateOption) (*BatchMsgPager, error) {
  275. pager := &BatchMsgPager{}
  276. for _, opt := range opts {
  277. opt(pager)
  278. }
  279. if pager.Order == nil {
  280. pager.Order = DefaultBatchMsgOrder
  281. }
  282. return pager, nil
  283. }
  284. func (p *BatchMsgPager) ApplyFilter(query *BatchMsgQuery) (*BatchMsgQuery, error) {
  285. if p.Filter != nil {
  286. return p.Filter(query)
  287. }
  288. return query, nil
  289. }
  290. // BatchMsgPageList is BatchMsg PageList result.
  291. type BatchMsgPageList struct {
  292. List []*BatchMsg `json:"list"`
  293. PageDetails *PageDetails `json:"pageDetails"`
  294. }
  295. func (bm *BatchMsgQuery) Page(
  296. ctx context.Context, pageNum uint64, pageSize uint64, opts ...BatchMsgPaginateOption,
  297. ) (*BatchMsgPageList, error) {
  298. pager, err := newBatchMsgPager(opts)
  299. if err != nil {
  300. return nil, err
  301. }
  302. if bm, err = pager.ApplyFilter(bm); err != nil {
  303. return nil, err
  304. }
  305. ret := &BatchMsgPageList{}
  306. ret.PageDetails = &PageDetails{
  307. Page: pageNum,
  308. Size: pageSize,
  309. }
  310. query := bm.Clone()
  311. query.ctx.Fields = nil
  312. count, err := query.Count(ctx)
  313. if err != nil {
  314. return nil, err
  315. }
  316. ret.PageDetails.Total = uint64(count)
  317. if pager.Order != nil {
  318. bm = bm.Order(pager.Order)
  319. } else {
  320. bm = bm.Order(DefaultBatchMsgOrder)
  321. }
  322. bm = bm.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  323. list, err := bm.All(ctx)
  324. if err != nil {
  325. return nil, err
  326. }
  327. ret.List = list
  328. return ret, nil
  329. }
  330. type CategoryPager struct {
  331. Order category.OrderOption
  332. Filter func(*CategoryQuery) (*CategoryQuery, error)
  333. }
  334. // CategoryPaginateOption enables pagination customization.
  335. type CategoryPaginateOption func(*CategoryPager)
  336. // DefaultCategoryOrder is the default ordering of Category.
  337. var DefaultCategoryOrder = Desc(category.FieldID)
  338. func newCategoryPager(opts []CategoryPaginateOption) (*CategoryPager, error) {
  339. pager := &CategoryPager{}
  340. for _, opt := range opts {
  341. opt(pager)
  342. }
  343. if pager.Order == nil {
  344. pager.Order = DefaultCategoryOrder
  345. }
  346. return pager, nil
  347. }
  348. func (p *CategoryPager) ApplyFilter(query *CategoryQuery) (*CategoryQuery, error) {
  349. if p.Filter != nil {
  350. return p.Filter(query)
  351. }
  352. return query, nil
  353. }
  354. // CategoryPageList is Category PageList result.
  355. type CategoryPageList struct {
  356. List []*Category `json:"list"`
  357. PageDetails *PageDetails `json:"pageDetails"`
  358. }
  359. func (c *CategoryQuery) Page(
  360. ctx context.Context, pageNum uint64, pageSize uint64, opts ...CategoryPaginateOption,
  361. ) (*CategoryPageList, error) {
  362. pager, err := newCategoryPager(opts)
  363. if err != nil {
  364. return nil, err
  365. }
  366. if c, err = pager.ApplyFilter(c); err != nil {
  367. return nil, err
  368. }
  369. ret := &CategoryPageList{}
  370. ret.PageDetails = &PageDetails{
  371. Page: pageNum,
  372. Size: pageSize,
  373. }
  374. query := c.Clone()
  375. query.ctx.Fields = nil
  376. count, err := query.Count(ctx)
  377. if err != nil {
  378. return nil, err
  379. }
  380. ret.PageDetails.Total = uint64(count)
  381. if pager.Order != nil {
  382. c = c.Order(pager.Order)
  383. } else {
  384. c = c.Order(DefaultCategoryOrder)
  385. }
  386. c = c.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  387. list, err := c.All(ctx)
  388. if err != nil {
  389. return nil, err
  390. }
  391. ret.List = list
  392. return ret, nil
  393. }
  394. type ChatRecordsPager struct {
  395. Order chatrecords.OrderOption
  396. Filter func(*ChatRecordsQuery) (*ChatRecordsQuery, error)
  397. }
  398. // ChatRecordsPaginateOption enables pagination customization.
  399. type ChatRecordsPaginateOption func(*ChatRecordsPager)
  400. // DefaultChatRecordsOrder is the default ordering of ChatRecords.
  401. var DefaultChatRecordsOrder = Desc(chatrecords.FieldID)
  402. func newChatRecordsPager(opts []ChatRecordsPaginateOption) (*ChatRecordsPager, error) {
  403. pager := &ChatRecordsPager{}
  404. for _, opt := range opts {
  405. opt(pager)
  406. }
  407. if pager.Order == nil {
  408. pager.Order = DefaultChatRecordsOrder
  409. }
  410. return pager, nil
  411. }
  412. func (p *ChatRecordsPager) ApplyFilter(query *ChatRecordsQuery) (*ChatRecordsQuery, error) {
  413. if p.Filter != nil {
  414. return p.Filter(query)
  415. }
  416. return query, nil
  417. }
  418. // ChatRecordsPageList is ChatRecords PageList result.
  419. type ChatRecordsPageList struct {
  420. List []*ChatRecords `json:"list"`
  421. PageDetails *PageDetails `json:"pageDetails"`
  422. }
  423. func (cr *ChatRecordsQuery) Page(
  424. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ChatRecordsPaginateOption,
  425. ) (*ChatRecordsPageList, error) {
  426. pager, err := newChatRecordsPager(opts)
  427. if err != nil {
  428. return nil, err
  429. }
  430. if cr, err = pager.ApplyFilter(cr); err != nil {
  431. return nil, err
  432. }
  433. ret := &ChatRecordsPageList{}
  434. ret.PageDetails = &PageDetails{
  435. Page: pageNum,
  436. Size: pageSize,
  437. }
  438. query := cr.Clone()
  439. query.ctx.Fields = nil
  440. count, err := query.Count(ctx)
  441. if err != nil {
  442. return nil, err
  443. }
  444. ret.PageDetails.Total = uint64(count)
  445. if pager.Order != nil {
  446. cr = cr.Order(pager.Order)
  447. } else {
  448. cr = cr.Order(DefaultChatRecordsOrder)
  449. }
  450. cr = cr.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  451. list, err := cr.All(ctx)
  452. if err != nil {
  453. return nil, err
  454. }
  455. ret.List = list
  456. return ret, nil
  457. }
  458. type ChatSessionPager struct {
  459. Order chatsession.OrderOption
  460. Filter func(*ChatSessionQuery) (*ChatSessionQuery, error)
  461. }
  462. // ChatSessionPaginateOption enables pagination customization.
  463. type ChatSessionPaginateOption func(*ChatSessionPager)
  464. // DefaultChatSessionOrder is the default ordering of ChatSession.
  465. var DefaultChatSessionOrder = Desc(chatsession.FieldID)
  466. func newChatSessionPager(opts []ChatSessionPaginateOption) (*ChatSessionPager, error) {
  467. pager := &ChatSessionPager{}
  468. for _, opt := range opts {
  469. opt(pager)
  470. }
  471. if pager.Order == nil {
  472. pager.Order = DefaultChatSessionOrder
  473. }
  474. return pager, nil
  475. }
  476. func (p *ChatSessionPager) ApplyFilter(query *ChatSessionQuery) (*ChatSessionQuery, error) {
  477. if p.Filter != nil {
  478. return p.Filter(query)
  479. }
  480. return query, nil
  481. }
  482. // ChatSessionPageList is ChatSession PageList result.
  483. type ChatSessionPageList struct {
  484. List []*ChatSession `json:"list"`
  485. PageDetails *PageDetails `json:"pageDetails"`
  486. }
  487. func (cs *ChatSessionQuery) Page(
  488. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ChatSessionPaginateOption,
  489. ) (*ChatSessionPageList, error) {
  490. pager, err := newChatSessionPager(opts)
  491. if err != nil {
  492. return nil, err
  493. }
  494. if cs, err = pager.ApplyFilter(cs); err != nil {
  495. return nil, err
  496. }
  497. ret := &ChatSessionPageList{}
  498. ret.PageDetails = &PageDetails{
  499. Page: pageNum,
  500. Size: pageSize,
  501. }
  502. query := cs.Clone()
  503. query.ctx.Fields = nil
  504. count, err := query.Count(ctx)
  505. if err != nil {
  506. return nil, err
  507. }
  508. ret.PageDetails.Total = uint64(count)
  509. if pager.Order != nil {
  510. cs = cs.Order(pager.Order)
  511. } else {
  512. cs = cs.Order(DefaultChatSessionOrder)
  513. }
  514. cs = cs.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  515. list, err := cs.All(ctx)
  516. if err != nil {
  517. return nil, err
  518. }
  519. ret.List = list
  520. return ret, nil
  521. }
  522. type ContactPager struct {
  523. Order contact.OrderOption
  524. Filter func(*ContactQuery) (*ContactQuery, error)
  525. }
  526. // ContactPaginateOption enables pagination customization.
  527. type ContactPaginateOption func(*ContactPager)
  528. // DefaultContactOrder is the default ordering of Contact.
  529. var DefaultContactOrder = Desc(contact.FieldID)
  530. func newContactPager(opts []ContactPaginateOption) (*ContactPager, error) {
  531. pager := &ContactPager{}
  532. for _, opt := range opts {
  533. opt(pager)
  534. }
  535. if pager.Order == nil {
  536. pager.Order = DefaultContactOrder
  537. }
  538. return pager, nil
  539. }
  540. func (p *ContactPager) ApplyFilter(query *ContactQuery) (*ContactQuery, error) {
  541. if p.Filter != nil {
  542. return p.Filter(query)
  543. }
  544. return query, nil
  545. }
  546. // ContactPageList is Contact PageList result.
  547. type ContactPageList struct {
  548. List []*Contact `json:"list"`
  549. PageDetails *PageDetails `json:"pageDetails"`
  550. }
  551. func (c *ContactQuery) Page(
  552. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ContactPaginateOption,
  553. ) (*ContactPageList, error) {
  554. pager, err := newContactPager(opts)
  555. if err != nil {
  556. return nil, err
  557. }
  558. if c, err = pager.ApplyFilter(c); err != nil {
  559. return nil, err
  560. }
  561. ret := &ContactPageList{}
  562. ret.PageDetails = &PageDetails{
  563. Page: pageNum,
  564. Size: pageSize,
  565. }
  566. query := c.Clone()
  567. query.ctx.Fields = nil
  568. count, err := query.Count(ctx)
  569. if err != nil {
  570. return nil, err
  571. }
  572. ret.PageDetails.Total = uint64(count)
  573. if pager.Order != nil {
  574. c = c.Order(pager.Order)
  575. } else {
  576. c = c.Order(DefaultContactOrder)
  577. }
  578. c = c.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  579. list, err := c.All(ctx)
  580. if err != nil {
  581. return nil, err
  582. }
  583. ret.List = list
  584. return ret, nil
  585. }
  586. type EmployeePager struct {
  587. Order employee.OrderOption
  588. Filter func(*EmployeeQuery) (*EmployeeQuery, error)
  589. }
  590. // EmployeePaginateOption enables pagination customization.
  591. type EmployeePaginateOption func(*EmployeePager)
  592. // DefaultEmployeeOrder is the default ordering of Employee.
  593. var DefaultEmployeeOrder = Desc(employee.FieldID)
  594. func newEmployeePager(opts []EmployeePaginateOption) (*EmployeePager, error) {
  595. pager := &EmployeePager{}
  596. for _, opt := range opts {
  597. opt(pager)
  598. }
  599. if pager.Order == nil {
  600. pager.Order = DefaultEmployeeOrder
  601. }
  602. return pager, nil
  603. }
  604. func (p *EmployeePager) ApplyFilter(query *EmployeeQuery) (*EmployeeQuery, error) {
  605. if p.Filter != nil {
  606. return p.Filter(query)
  607. }
  608. return query, nil
  609. }
  610. // EmployeePageList is Employee PageList result.
  611. type EmployeePageList struct {
  612. List []*Employee `json:"list"`
  613. PageDetails *PageDetails `json:"pageDetails"`
  614. }
  615. func (e *EmployeeQuery) Page(
  616. ctx context.Context, pageNum uint64, pageSize uint64, opts ...EmployeePaginateOption,
  617. ) (*EmployeePageList, error) {
  618. pager, err := newEmployeePager(opts)
  619. if err != nil {
  620. return nil, err
  621. }
  622. if e, err = pager.ApplyFilter(e); err != nil {
  623. return nil, err
  624. }
  625. ret := &EmployeePageList{}
  626. ret.PageDetails = &PageDetails{
  627. Page: pageNum,
  628. Size: pageSize,
  629. }
  630. query := e.Clone()
  631. query.ctx.Fields = nil
  632. count, err := query.Count(ctx)
  633. if err != nil {
  634. return nil, err
  635. }
  636. ret.PageDetails.Total = uint64(count)
  637. if pager.Order != nil {
  638. e = e.Order(pager.Order)
  639. } else {
  640. e = e.Order(DefaultEmployeeOrder)
  641. }
  642. e = e.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  643. list, err := e.All(ctx)
  644. if err != nil {
  645. return nil, err
  646. }
  647. ret.List = list
  648. return ret, nil
  649. }
  650. type EmployeeConfigPager struct {
  651. Order employeeconfig.OrderOption
  652. Filter func(*EmployeeConfigQuery) (*EmployeeConfigQuery, error)
  653. }
  654. // EmployeeConfigPaginateOption enables pagination customization.
  655. type EmployeeConfigPaginateOption func(*EmployeeConfigPager)
  656. // DefaultEmployeeConfigOrder is the default ordering of EmployeeConfig.
  657. var DefaultEmployeeConfigOrder = Desc(employeeconfig.FieldID)
  658. func newEmployeeConfigPager(opts []EmployeeConfigPaginateOption) (*EmployeeConfigPager, error) {
  659. pager := &EmployeeConfigPager{}
  660. for _, opt := range opts {
  661. opt(pager)
  662. }
  663. if pager.Order == nil {
  664. pager.Order = DefaultEmployeeConfigOrder
  665. }
  666. return pager, nil
  667. }
  668. func (p *EmployeeConfigPager) ApplyFilter(query *EmployeeConfigQuery) (*EmployeeConfigQuery, error) {
  669. if p.Filter != nil {
  670. return p.Filter(query)
  671. }
  672. return query, nil
  673. }
  674. // EmployeeConfigPageList is EmployeeConfig PageList result.
  675. type EmployeeConfigPageList struct {
  676. List []*EmployeeConfig `json:"list"`
  677. PageDetails *PageDetails `json:"pageDetails"`
  678. }
  679. func (ec *EmployeeConfigQuery) Page(
  680. ctx context.Context, pageNum uint64, pageSize uint64, opts ...EmployeeConfigPaginateOption,
  681. ) (*EmployeeConfigPageList, error) {
  682. pager, err := newEmployeeConfigPager(opts)
  683. if err != nil {
  684. return nil, err
  685. }
  686. if ec, err = pager.ApplyFilter(ec); err != nil {
  687. return nil, err
  688. }
  689. ret := &EmployeeConfigPageList{}
  690. ret.PageDetails = &PageDetails{
  691. Page: pageNum,
  692. Size: pageSize,
  693. }
  694. query := ec.Clone()
  695. query.ctx.Fields = nil
  696. count, err := query.Count(ctx)
  697. if err != nil {
  698. return nil, err
  699. }
  700. ret.PageDetails.Total = uint64(count)
  701. if pager.Order != nil {
  702. ec = ec.Order(pager.Order)
  703. } else {
  704. ec = ec.Order(DefaultEmployeeConfigOrder)
  705. }
  706. ec = ec.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  707. list, err := ec.All(ctx)
  708. if err != nil {
  709. return nil, err
  710. }
  711. ret.List = list
  712. return ret, nil
  713. }
  714. type LabelPager struct {
  715. Order label.OrderOption
  716. Filter func(*LabelQuery) (*LabelQuery, error)
  717. }
  718. // LabelPaginateOption enables pagination customization.
  719. type LabelPaginateOption func(*LabelPager)
  720. // DefaultLabelOrder is the default ordering of Label.
  721. var DefaultLabelOrder = Desc(label.FieldID)
  722. func newLabelPager(opts []LabelPaginateOption) (*LabelPager, error) {
  723. pager := &LabelPager{}
  724. for _, opt := range opts {
  725. opt(pager)
  726. }
  727. if pager.Order == nil {
  728. pager.Order = DefaultLabelOrder
  729. }
  730. return pager, nil
  731. }
  732. func (p *LabelPager) ApplyFilter(query *LabelQuery) (*LabelQuery, error) {
  733. if p.Filter != nil {
  734. return p.Filter(query)
  735. }
  736. return query, nil
  737. }
  738. // LabelPageList is Label PageList result.
  739. type LabelPageList struct {
  740. List []*Label `json:"list"`
  741. PageDetails *PageDetails `json:"pageDetails"`
  742. }
  743. func (l *LabelQuery) Page(
  744. ctx context.Context, pageNum uint64, pageSize uint64, opts ...LabelPaginateOption,
  745. ) (*LabelPageList, error) {
  746. pager, err := newLabelPager(opts)
  747. if err != nil {
  748. return nil, err
  749. }
  750. if l, err = pager.ApplyFilter(l); err != nil {
  751. return nil, err
  752. }
  753. ret := &LabelPageList{}
  754. ret.PageDetails = &PageDetails{
  755. Page: pageNum,
  756. Size: pageSize,
  757. }
  758. query := l.Clone()
  759. query.ctx.Fields = nil
  760. count, err := query.Count(ctx)
  761. if err != nil {
  762. return nil, err
  763. }
  764. ret.PageDetails.Total = uint64(count)
  765. if pager.Order != nil {
  766. l = l.Order(pager.Order)
  767. } else {
  768. l = l.Order(DefaultLabelOrder)
  769. }
  770. l = l.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  771. list, err := l.All(ctx)
  772. if err != nil {
  773. return nil, err
  774. }
  775. ret.List = list
  776. return ret, nil
  777. }
  778. type LabelRelationshipPager struct {
  779. Order labelrelationship.OrderOption
  780. Filter func(*LabelRelationshipQuery) (*LabelRelationshipQuery, error)
  781. }
  782. // LabelRelationshipPaginateOption enables pagination customization.
  783. type LabelRelationshipPaginateOption func(*LabelRelationshipPager)
  784. // DefaultLabelRelationshipOrder is the default ordering of LabelRelationship.
  785. var DefaultLabelRelationshipOrder = Desc(labelrelationship.FieldID)
  786. func newLabelRelationshipPager(opts []LabelRelationshipPaginateOption) (*LabelRelationshipPager, error) {
  787. pager := &LabelRelationshipPager{}
  788. for _, opt := range opts {
  789. opt(pager)
  790. }
  791. if pager.Order == nil {
  792. pager.Order = DefaultLabelRelationshipOrder
  793. }
  794. return pager, nil
  795. }
  796. func (p *LabelRelationshipPager) ApplyFilter(query *LabelRelationshipQuery) (*LabelRelationshipQuery, error) {
  797. if p.Filter != nil {
  798. return p.Filter(query)
  799. }
  800. return query, nil
  801. }
  802. // LabelRelationshipPageList is LabelRelationship PageList result.
  803. type LabelRelationshipPageList struct {
  804. List []*LabelRelationship `json:"list"`
  805. PageDetails *PageDetails `json:"pageDetails"`
  806. }
  807. func (lr *LabelRelationshipQuery) Page(
  808. ctx context.Context, pageNum uint64, pageSize uint64, opts ...LabelRelationshipPaginateOption,
  809. ) (*LabelRelationshipPageList, error) {
  810. pager, err := newLabelRelationshipPager(opts)
  811. if err != nil {
  812. return nil, err
  813. }
  814. if lr, err = pager.ApplyFilter(lr); err != nil {
  815. return nil, err
  816. }
  817. ret := &LabelRelationshipPageList{}
  818. ret.PageDetails = &PageDetails{
  819. Page: pageNum,
  820. Size: pageSize,
  821. }
  822. query := lr.Clone()
  823. query.ctx.Fields = nil
  824. count, err := query.Count(ctx)
  825. if err != nil {
  826. return nil, err
  827. }
  828. ret.PageDetails.Total = uint64(count)
  829. if pager.Order != nil {
  830. lr = lr.Order(pager.Order)
  831. } else {
  832. lr = lr.Order(DefaultLabelRelationshipOrder)
  833. }
  834. lr = lr.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  835. list, err := lr.All(ctx)
  836. if err != nil {
  837. return nil, err
  838. }
  839. ret.List = list
  840. return ret, nil
  841. }
  842. type MessagePager struct {
  843. Order message.OrderOption
  844. Filter func(*MessageQuery) (*MessageQuery, error)
  845. }
  846. // MessagePaginateOption enables pagination customization.
  847. type MessagePaginateOption func(*MessagePager)
  848. // DefaultMessageOrder is the default ordering of Message.
  849. var DefaultMessageOrder = Desc(message.FieldID)
  850. func newMessagePager(opts []MessagePaginateOption) (*MessagePager, error) {
  851. pager := &MessagePager{}
  852. for _, opt := range opts {
  853. opt(pager)
  854. }
  855. if pager.Order == nil {
  856. pager.Order = DefaultMessageOrder
  857. }
  858. return pager, nil
  859. }
  860. func (p *MessagePager) ApplyFilter(query *MessageQuery) (*MessageQuery, error) {
  861. if p.Filter != nil {
  862. return p.Filter(query)
  863. }
  864. return query, nil
  865. }
  866. // MessagePageList is Message PageList result.
  867. type MessagePageList struct {
  868. List []*Message `json:"list"`
  869. PageDetails *PageDetails `json:"pageDetails"`
  870. }
  871. func (m *MessageQuery) Page(
  872. ctx context.Context, pageNum uint64, pageSize uint64, opts ...MessagePaginateOption,
  873. ) (*MessagePageList, error) {
  874. pager, err := newMessagePager(opts)
  875. if err != nil {
  876. return nil, err
  877. }
  878. if m, err = pager.ApplyFilter(m); err != nil {
  879. return nil, err
  880. }
  881. ret := &MessagePageList{}
  882. ret.PageDetails = &PageDetails{
  883. Page: pageNum,
  884. Size: pageSize,
  885. }
  886. query := m.Clone()
  887. query.ctx.Fields = nil
  888. count, err := query.Count(ctx)
  889. if err != nil {
  890. return nil, err
  891. }
  892. ret.PageDetails.Total = uint64(count)
  893. if pager.Order != nil {
  894. m = m.Order(pager.Order)
  895. } else {
  896. m = m.Order(DefaultMessageOrder)
  897. }
  898. m = m.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  899. list, err := m.All(ctx)
  900. if err != nil {
  901. return nil, err
  902. }
  903. ret.List = list
  904. return ret, nil
  905. }
  906. type MessageRecordsPager struct {
  907. Order messagerecords.OrderOption
  908. Filter func(*MessageRecordsQuery) (*MessageRecordsQuery, error)
  909. }
  910. // MessageRecordsPaginateOption enables pagination customization.
  911. type MessageRecordsPaginateOption func(*MessageRecordsPager)
  912. // DefaultMessageRecordsOrder is the default ordering of MessageRecords.
  913. var DefaultMessageRecordsOrder = Desc(messagerecords.FieldID)
  914. func newMessageRecordsPager(opts []MessageRecordsPaginateOption) (*MessageRecordsPager, error) {
  915. pager := &MessageRecordsPager{}
  916. for _, opt := range opts {
  917. opt(pager)
  918. }
  919. if pager.Order == nil {
  920. pager.Order = DefaultMessageRecordsOrder
  921. }
  922. return pager, nil
  923. }
  924. func (p *MessageRecordsPager) ApplyFilter(query *MessageRecordsQuery) (*MessageRecordsQuery, error) {
  925. if p.Filter != nil {
  926. return p.Filter(query)
  927. }
  928. return query, nil
  929. }
  930. // MessageRecordsPageList is MessageRecords PageList result.
  931. type MessageRecordsPageList struct {
  932. List []*MessageRecords `json:"list"`
  933. PageDetails *PageDetails `json:"pageDetails"`
  934. }
  935. func (mr *MessageRecordsQuery) Page(
  936. ctx context.Context, pageNum uint64, pageSize uint64, opts ...MessageRecordsPaginateOption,
  937. ) (*MessageRecordsPageList, error) {
  938. pager, err := newMessageRecordsPager(opts)
  939. if err != nil {
  940. return nil, err
  941. }
  942. if mr, err = pager.ApplyFilter(mr); err != nil {
  943. return nil, err
  944. }
  945. ret := &MessageRecordsPageList{}
  946. ret.PageDetails = &PageDetails{
  947. Page: pageNum,
  948. Size: pageSize,
  949. }
  950. query := mr.Clone()
  951. query.ctx.Fields = nil
  952. count, err := query.Count(ctx)
  953. if err != nil {
  954. return nil, err
  955. }
  956. ret.PageDetails.Total = uint64(count)
  957. if pager.Order != nil {
  958. mr = mr.Order(pager.Order)
  959. } else {
  960. mr = mr.Order(DefaultMessageRecordsOrder)
  961. }
  962. mr = mr.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  963. list, err := mr.All(ctx)
  964. if err != nil {
  965. return nil, err
  966. }
  967. ret.List = list
  968. return ret, nil
  969. }
  970. type MsgPager struct {
  971. Order msg.OrderOption
  972. Filter func(*MsgQuery) (*MsgQuery, error)
  973. }
  974. // MsgPaginateOption enables pagination customization.
  975. type MsgPaginateOption func(*MsgPager)
  976. // DefaultMsgOrder is the default ordering of Msg.
  977. var DefaultMsgOrder = Desc(msg.FieldID)
  978. func newMsgPager(opts []MsgPaginateOption) (*MsgPager, error) {
  979. pager := &MsgPager{}
  980. for _, opt := range opts {
  981. opt(pager)
  982. }
  983. if pager.Order == nil {
  984. pager.Order = DefaultMsgOrder
  985. }
  986. return pager, nil
  987. }
  988. func (p *MsgPager) ApplyFilter(query *MsgQuery) (*MsgQuery, error) {
  989. if p.Filter != nil {
  990. return p.Filter(query)
  991. }
  992. return query, nil
  993. }
  994. // MsgPageList is Msg PageList result.
  995. type MsgPageList struct {
  996. List []*Msg `json:"list"`
  997. PageDetails *PageDetails `json:"pageDetails"`
  998. }
  999. func (m *MsgQuery) Page(
  1000. ctx context.Context, pageNum uint64, pageSize uint64, opts ...MsgPaginateOption,
  1001. ) (*MsgPageList, error) {
  1002. pager, err := newMsgPager(opts)
  1003. if err != nil {
  1004. return nil, err
  1005. }
  1006. if m, err = pager.ApplyFilter(m); err != nil {
  1007. return nil, err
  1008. }
  1009. ret := &MsgPageList{}
  1010. ret.PageDetails = &PageDetails{
  1011. Page: pageNum,
  1012. Size: pageSize,
  1013. }
  1014. query := m.Clone()
  1015. query.ctx.Fields = nil
  1016. count, err := query.Count(ctx)
  1017. if err != nil {
  1018. return nil, err
  1019. }
  1020. ret.PageDetails.Total = uint64(count)
  1021. if pager.Order != nil {
  1022. m = m.Order(pager.Order)
  1023. } else {
  1024. m = m.Order(DefaultMsgOrder)
  1025. }
  1026. m = m.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1027. list, err := m.All(ctx)
  1028. if err != nil {
  1029. return nil, err
  1030. }
  1031. ret.List = list
  1032. return ret, nil
  1033. }
  1034. type ServerPager struct {
  1035. Order server.OrderOption
  1036. Filter func(*ServerQuery) (*ServerQuery, error)
  1037. }
  1038. // ServerPaginateOption enables pagination customization.
  1039. type ServerPaginateOption func(*ServerPager)
  1040. // DefaultServerOrder is the default ordering of Server.
  1041. var DefaultServerOrder = Desc(server.FieldID)
  1042. func newServerPager(opts []ServerPaginateOption) (*ServerPager, error) {
  1043. pager := &ServerPager{}
  1044. for _, opt := range opts {
  1045. opt(pager)
  1046. }
  1047. if pager.Order == nil {
  1048. pager.Order = DefaultServerOrder
  1049. }
  1050. return pager, nil
  1051. }
  1052. func (p *ServerPager) ApplyFilter(query *ServerQuery) (*ServerQuery, error) {
  1053. if p.Filter != nil {
  1054. return p.Filter(query)
  1055. }
  1056. return query, nil
  1057. }
  1058. // ServerPageList is Server PageList result.
  1059. type ServerPageList struct {
  1060. List []*Server `json:"list"`
  1061. PageDetails *PageDetails `json:"pageDetails"`
  1062. }
  1063. func (s *ServerQuery) Page(
  1064. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ServerPaginateOption,
  1065. ) (*ServerPageList, error) {
  1066. pager, err := newServerPager(opts)
  1067. if err != nil {
  1068. return nil, err
  1069. }
  1070. if s, err = pager.ApplyFilter(s); err != nil {
  1071. return nil, err
  1072. }
  1073. ret := &ServerPageList{}
  1074. ret.PageDetails = &PageDetails{
  1075. Page: pageNum,
  1076. Size: pageSize,
  1077. }
  1078. query := s.Clone()
  1079. query.ctx.Fields = nil
  1080. count, err := query.Count(ctx)
  1081. if err != nil {
  1082. return nil, err
  1083. }
  1084. ret.PageDetails.Total = uint64(count)
  1085. if pager.Order != nil {
  1086. s = s.Order(pager.Order)
  1087. } else {
  1088. s = s.Order(DefaultServerOrder)
  1089. }
  1090. s = s.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1091. list, err := s.All(ctx)
  1092. if err != nil {
  1093. return nil, err
  1094. }
  1095. ret.List = list
  1096. return ret, nil
  1097. }
  1098. type SopNodePager struct {
  1099. Order sopnode.OrderOption
  1100. Filter func(*SopNodeQuery) (*SopNodeQuery, error)
  1101. }
  1102. // SopNodePaginateOption enables pagination customization.
  1103. type SopNodePaginateOption func(*SopNodePager)
  1104. // DefaultSopNodeOrder is the default ordering of SopNode.
  1105. var DefaultSopNodeOrder = Desc(sopnode.FieldID)
  1106. func newSopNodePager(opts []SopNodePaginateOption) (*SopNodePager, error) {
  1107. pager := &SopNodePager{}
  1108. for _, opt := range opts {
  1109. opt(pager)
  1110. }
  1111. if pager.Order == nil {
  1112. pager.Order = DefaultSopNodeOrder
  1113. }
  1114. return pager, nil
  1115. }
  1116. func (p *SopNodePager) ApplyFilter(query *SopNodeQuery) (*SopNodeQuery, error) {
  1117. if p.Filter != nil {
  1118. return p.Filter(query)
  1119. }
  1120. return query, nil
  1121. }
  1122. // SopNodePageList is SopNode PageList result.
  1123. type SopNodePageList struct {
  1124. List []*SopNode `json:"list"`
  1125. PageDetails *PageDetails `json:"pageDetails"`
  1126. }
  1127. func (sn *SopNodeQuery) Page(
  1128. ctx context.Context, pageNum uint64, pageSize uint64, opts ...SopNodePaginateOption,
  1129. ) (*SopNodePageList, error) {
  1130. pager, err := newSopNodePager(opts)
  1131. if err != nil {
  1132. return nil, err
  1133. }
  1134. if sn, err = pager.ApplyFilter(sn); err != nil {
  1135. return nil, err
  1136. }
  1137. ret := &SopNodePageList{}
  1138. ret.PageDetails = &PageDetails{
  1139. Page: pageNum,
  1140. Size: pageSize,
  1141. }
  1142. query := sn.Clone()
  1143. query.ctx.Fields = nil
  1144. count, err := query.Count(ctx)
  1145. if err != nil {
  1146. return nil, err
  1147. }
  1148. ret.PageDetails.Total = uint64(count)
  1149. if pager.Order != nil {
  1150. sn = sn.Order(pager.Order)
  1151. } else {
  1152. sn = sn.Order(DefaultSopNodeOrder)
  1153. }
  1154. sn = sn.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1155. list, err := sn.All(ctx)
  1156. if err != nil {
  1157. return nil, err
  1158. }
  1159. ret.List = list
  1160. return ret, nil
  1161. }
  1162. type SopStagePager struct {
  1163. Order sopstage.OrderOption
  1164. Filter func(*SopStageQuery) (*SopStageQuery, error)
  1165. }
  1166. // SopStagePaginateOption enables pagination customization.
  1167. type SopStagePaginateOption func(*SopStagePager)
  1168. // DefaultSopStageOrder is the default ordering of SopStage.
  1169. var DefaultSopStageOrder = Desc(sopstage.FieldID)
  1170. func newSopStagePager(opts []SopStagePaginateOption) (*SopStagePager, error) {
  1171. pager := &SopStagePager{}
  1172. for _, opt := range opts {
  1173. opt(pager)
  1174. }
  1175. if pager.Order == nil {
  1176. pager.Order = DefaultSopStageOrder
  1177. }
  1178. return pager, nil
  1179. }
  1180. func (p *SopStagePager) ApplyFilter(query *SopStageQuery) (*SopStageQuery, error) {
  1181. if p.Filter != nil {
  1182. return p.Filter(query)
  1183. }
  1184. return query, nil
  1185. }
  1186. // SopStagePageList is SopStage PageList result.
  1187. type SopStagePageList struct {
  1188. List []*SopStage `json:"list"`
  1189. PageDetails *PageDetails `json:"pageDetails"`
  1190. }
  1191. func (ss *SopStageQuery) Page(
  1192. ctx context.Context, pageNum uint64, pageSize uint64, opts ...SopStagePaginateOption,
  1193. ) (*SopStagePageList, error) {
  1194. pager, err := newSopStagePager(opts)
  1195. if err != nil {
  1196. return nil, err
  1197. }
  1198. if ss, err = pager.ApplyFilter(ss); err != nil {
  1199. return nil, err
  1200. }
  1201. ret := &SopStagePageList{}
  1202. ret.PageDetails = &PageDetails{
  1203. Page: pageNum,
  1204. Size: pageSize,
  1205. }
  1206. query := ss.Clone()
  1207. query.ctx.Fields = nil
  1208. count, err := query.Count(ctx)
  1209. if err != nil {
  1210. return nil, err
  1211. }
  1212. ret.PageDetails.Total = uint64(count)
  1213. if pager.Order != nil {
  1214. ss = ss.Order(pager.Order)
  1215. } else {
  1216. ss = ss.Order(DefaultSopStageOrder)
  1217. }
  1218. ss = ss.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1219. list, err := ss.All(ctx)
  1220. if err != nil {
  1221. return nil, err
  1222. }
  1223. ret.List = list
  1224. return ret, nil
  1225. }
  1226. type SopTaskPager struct {
  1227. Order soptask.OrderOption
  1228. Filter func(*SopTaskQuery) (*SopTaskQuery, error)
  1229. }
  1230. // SopTaskPaginateOption enables pagination customization.
  1231. type SopTaskPaginateOption func(*SopTaskPager)
  1232. // DefaultSopTaskOrder is the default ordering of SopTask.
  1233. var DefaultSopTaskOrder = Desc(soptask.FieldID)
  1234. func newSopTaskPager(opts []SopTaskPaginateOption) (*SopTaskPager, error) {
  1235. pager := &SopTaskPager{}
  1236. for _, opt := range opts {
  1237. opt(pager)
  1238. }
  1239. if pager.Order == nil {
  1240. pager.Order = DefaultSopTaskOrder
  1241. }
  1242. return pager, nil
  1243. }
  1244. func (p *SopTaskPager) ApplyFilter(query *SopTaskQuery) (*SopTaskQuery, error) {
  1245. if p.Filter != nil {
  1246. return p.Filter(query)
  1247. }
  1248. return query, nil
  1249. }
  1250. // SopTaskPageList is SopTask PageList result.
  1251. type SopTaskPageList struct {
  1252. List []*SopTask `json:"list"`
  1253. PageDetails *PageDetails `json:"pageDetails"`
  1254. }
  1255. func (st *SopTaskQuery) Page(
  1256. ctx context.Context, pageNum uint64, pageSize uint64, opts ...SopTaskPaginateOption,
  1257. ) (*SopTaskPageList, error) {
  1258. pager, err := newSopTaskPager(opts)
  1259. if err != nil {
  1260. return nil, err
  1261. }
  1262. if st, err = pager.ApplyFilter(st); err != nil {
  1263. return nil, err
  1264. }
  1265. ret := &SopTaskPageList{}
  1266. ret.PageDetails = &PageDetails{
  1267. Page: pageNum,
  1268. Size: pageSize,
  1269. }
  1270. query := st.Clone()
  1271. query.ctx.Fields = nil
  1272. count, err := query.Count(ctx)
  1273. if err != nil {
  1274. return nil, err
  1275. }
  1276. ret.PageDetails.Total = uint64(count)
  1277. if pager.Order != nil {
  1278. st = st.Order(pager.Order)
  1279. } else {
  1280. st = st.Order(DefaultSopTaskOrder)
  1281. }
  1282. st = st.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1283. list, err := st.All(ctx)
  1284. if err != nil {
  1285. return nil, err
  1286. }
  1287. ret.List = list
  1288. return ret, nil
  1289. }
  1290. type TokenPager struct {
  1291. Order token.OrderOption
  1292. Filter func(*TokenQuery) (*TokenQuery, error)
  1293. }
  1294. // TokenPaginateOption enables pagination customization.
  1295. type TokenPaginateOption func(*TokenPager)
  1296. // DefaultTokenOrder is the default ordering of Token.
  1297. var DefaultTokenOrder = Desc(token.FieldID)
  1298. func newTokenPager(opts []TokenPaginateOption) (*TokenPager, error) {
  1299. pager := &TokenPager{}
  1300. for _, opt := range opts {
  1301. opt(pager)
  1302. }
  1303. if pager.Order == nil {
  1304. pager.Order = DefaultTokenOrder
  1305. }
  1306. return pager, nil
  1307. }
  1308. func (p *TokenPager) ApplyFilter(query *TokenQuery) (*TokenQuery, error) {
  1309. if p.Filter != nil {
  1310. return p.Filter(query)
  1311. }
  1312. return query, nil
  1313. }
  1314. // TokenPageList is Token PageList result.
  1315. type TokenPageList struct {
  1316. List []*Token `json:"list"`
  1317. PageDetails *PageDetails `json:"pageDetails"`
  1318. }
  1319. func (t *TokenQuery) Page(
  1320. ctx context.Context, pageNum uint64, pageSize uint64, opts ...TokenPaginateOption,
  1321. ) (*TokenPageList, error) {
  1322. pager, err := newTokenPager(opts)
  1323. if err != nil {
  1324. return nil, err
  1325. }
  1326. if t, err = pager.ApplyFilter(t); err != nil {
  1327. return nil, err
  1328. }
  1329. ret := &TokenPageList{}
  1330. ret.PageDetails = &PageDetails{
  1331. Page: pageNum,
  1332. Size: pageSize,
  1333. }
  1334. query := t.Clone()
  1335. query.ctx.Fields = nil
  1336. count, err := query.Count(ctx)
  1337. if err != nil {
  1338. return nil, err
  1339. }
  1340. ret.PageDetails.Total = uint64(count)
  1341. if pager.Order != nil {
  1342. t = t.Order(pager.Order)
  1343. } else {
  1344. t = t.Order(DefaultTokenOrder)
  1345. }
  1346. t = t.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1347. list, err := t.All(ctx)
  1348. if err != nil {
  1349. return nil, err
  1350. }
  1351. ret.List = list
  1352. return ret, nil
  1353. }
  1354. type TutorialPager struct {
  1355. Order tutorial.OrderOption
  1356. Filter func(*TutorialQuery) (*TutorialQuery, error)
  1357. }
  1358. // TutorialPaginateOption enables pagination customization.
  1359. type TutorialPaginateOption func(*TutorialPager)
  1360. // DefaultTutorialOrder is the default ordering of Tutorial.
  1361. var DefaultTutorialOrder = Desc(tutorial.FieldID)
  1362. func newTutorialPager(opts []TutorialPaginateOption) (*TutorialPager, error) {
  1363. pager := &TutorialPager{}
  1364. for _, opt := range opts {
  1365. opt(pager)
  1366. }
  1367. if pager.Order == nil {
  1368. pager.Order = DefaultTutorialOrder
  1369. }
  1370. return pager, nil
  1371. }
  1372. func (p *TutorialPager) ApplyFilter(query *TutorialQuery) (*TutorialQuery, error) {
  1373. if p.Filter != nil {
  1374. return p.Filter(query)
  1375. }
  1376. return query, nil
  1377. }
  1378. // TutorialPageList is Tutorial PageList result.
  1379. type TutorialPageList struct {
  1380. List []*Tutorial `json:"list"`
  1381. PageDetails *PageDetails `json:"pageDetails"`
  1382. }
  1383. func (t *TutorialQuery) Page(
  1384. ctx context.Context, pageNum uint64, pageSize uint64, opts ...TutorialPaginateOption,
  1385. ) (*TutorialPageList, error) {
  1386. pager, err := newTutorialPager(opts)
  1387. if err != nil {
  1388. return nil, err
  1389. }
  1390. if t, err = pager.ApplyFilter(t); err != nil {
  1391. return nil, err
  1392. }
  1393. ret := &TutorialPageList{}
  1394. ret.PageDetails = &PageDetails{
  1395. Page: pageNum,
  1396. Size: pageSize,
  1397. }
  1398. query := t.Clone()
  1399. query.ctx.Fields = nil
  1400. count, err := query.Count(ctx)
  1401. if err != nil {
  1402. return nil, err
  1403. }
  1404. ret.PageDetails.Total = uint64(count)
  1405. if pager.Order != nil {
  1406. t = t.Order(pager.Order)
  1407. } else {
  1408. t = t.Order(DefaultTutorialOrder)
  1409. }
  1410. t = t.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1411. list, err := t.All(ctx)
  1412. if err != nil {
  1413. return nil, err
  1414. }
  1415. ret.List = list
  1416. return ret, nil
  1417. }
  1418. type UsageDetailPager struct {
  1419. Order usagedetail.OrderOption
  1420. Filter func(*UsageDetailQuery) (*UsageDetailQuery, error)
  1421. }
  1422. // UsageDetailPaginateOption enables pagination customization.
  1423. type UsageDetailPaginateOption func(*UsageDetailPager)
  1424. // DefaultUsageDetailOrder is the default ordering of UsageDetail.
  1425. var DefaultUsageDetailOrder = Desc(usagedetail.FieldID)
  1426. func newUsageDetailPager(opts []UsageDetailPaginateOption) (*UsageDetailPager, error) {
  1427. pager := &UsageDetailPager{}
  1428. for _, opt := range opts {
  1429. opt(pager)
  1430. }
  1431. if pager.Order == nil {
  1432. pager.Order = DefaultUsageDetailOrder
  1433. }
  1434. return pager, nil
  1435. }
  1436. func (p *UsageDetailPager) ApplyFilter(query *UsageDetailQuery) (*UsageDetailQuery, error) {
  1437. if p.Filter != nil {
  1438. return p.Filter(query)
  1439. }
  1440. return query, nil
  1441. }
  1442. // UsageDetailPageList is UsageDetail PageList result.
  1443. type UsageDetailPageList struct {
  1444. List []*UsageDetail `json:"list"`
  1445. PageDetails *PageDetails `json:"pageDetails"`
  1446. }
  1447. func (ud *UsageDetailQuery) Page(
  1448. ctx context.Context, pageNum uint64, pageSize uint64, opts ...UsageDetailPaginateOption,
  1449. ) (*UsageDetailPageList, error) {
  1450. pager, err := newUsageDetailPager(opts)
  1451. if err != nil {
  1452. return nil, err
  1453. }
  1454. if ud, err = pager.ApplyFilter(ud); err != nil {
  1455. return nil, err
  1456. }
  1457. ret := &UsageDetailPageList{}
  1458. ret.PageDetails = &PageDetails{
  1459. Page: pageNum,
  1460. Size: pageSize,
  1461. }
  1462. query := ud.Clone()
  1463. query.ctx.Fields = nil
  1464. count, err := query.Count(ctx)
  1465. if err != nil {
  1466. return nil, err
  1467. }
  1468. ret.PageDetails.Total = uint64(count)
  1469. if pager.Order != nil {
  1470. ud = ud.Order(pager.Order)
  1471. } else {
  1472. ud = ud.Order(DefaultUsageDetailOrder)
  1473. }
  1474. ud = ud.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1475. list, err := ud.All(ctx)
  1476. if err != nil {
  1477. return nil, err
  1478. }
  1479. ret.List = list
  1480. return ret, nil
  1481. }
  1482. type UsageTotalPager struct {
  1483. Order usagetotal.OrderOption
  1484. Filter func(*UsageTotalQuery) (*UsageTotalQuery, error)
  1485. }
  1486. // UsageTotalPaginateOption enables pagination customization.
  1487. type UsageTotalPaginateOption func(*UsageTotalPager)
  1488. // DefaultUsageTotalOrder is the default ordering of UsageTotal.
  1489. var DefaultUsageTotalOrder = Desc(usagetotal.FieldID)
  1490. func newUsageTotalPager(opts []UsageTotalPaginateOption) (*UsageTotalPager, error) {
  1491. pager := &UsageTotalPager{}
  1492. for _, opt := range opts {
  1493. opt(pager)
  1494. }
  1495. if pager.Order == nil {
  1496. pager.Order = DefaultUsageTotalOrder
  1497. }
  1498. return pager, nil
  1499. }
  1500. func (p *UsageTotalPager) ApplyFilter(query *UsageTotalQuery) (*UsageTotalQuery, error) {
  1501. if p.Filter != nil {
  1502. return p.Filter(query)
  1503. }
  1504. return query, nil
  1505. }
  1506. // UsageTotalPageList is UsageTotal PageList result.
  1507. type UsageTotalPageList struct {
  1508. List []*UsageTotal `json:"list"`
  1509. PageDetails *PageDetails `json:"pageDetails"`
  1510. }
  1511. func (ut *UsageTotalQuery) Page(
  1512. ctx context.Context, pageNum uint64, pageSize uint64, opts ...UsageTotalPaginateOption,
  1513. ) (*UsageTotalPageList, error) {
  1514. pager, err := newUsageTotalPager(opts)
  1515. if err != nil {
  1516. return nil, err
  1517. }
  1518. if ut, err = pager.ApplyFilter(ut); err != nil {
  1519. return nil, err
  1520. }
  1521. ret := &UsageTotalPageList{}
  1522. ret.PageDetails = &PageDetails{
  1523. Page: pageNum,
  1524. Size: pageSize,
  1525. }
  1526. query := ut.Clone()
  1527. query.ctx.Fields = nil
  1528. count, err := query.Count(ctx)
  1529. if err != nil {
  1530. return nil, err
  1531. }
  1532. ret.PageDetails.Total = uint64(count)
  1533. if pager.Order != nil {
  1534. ut = ut.Order(pager.Order)
  1535. } else {
  1536. ut = ut.Order(DefaultUsageTotalOrder)
  1537. }
  1538. ut = ut.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1539. list, err := ut.All(ctx)
  1540. if err != nil {
  1541. return nil, err
  1542. }
  1543. ret.List = list
  1544. return ret, nil
  1545. }
  1546. type WorkExperiencePager struct {
  1547. Order workexperience.OrderOption
  1548. Filter func(*WorkExperienceQuery) (*WorkExperienceQuery, error)
  1549. }
  1550. // WorkExperiencePaginateOption enables pagination customization.
  1551. type WorkExperiencePaginateOption func(*WorkExperiencePager)
  1552. // DefaultWorkExperienceOrder is the default ordering of WorkExperience.
  1553. var DefaultWorkExperienceOrder = Desc(workexperience.FieldID)
  1554. func newWorkExperiencePager(opts []WorkExperiencePaginateOption) (*WorkExperiencePager, error) {
  1555. pager := &WorkExperiencePager{}
  1556. for _, opt := range opts {
  1557. opt(pager)
  1558. }
  1559. if pager.Order == nil {
  1560. pager.Order = DefaultWorkExperienceOrder
  1561. }
  1562. return pager, nil
  1563. }
  1564. func (p *WorkExperiencePager) ApplyFilter(query *WorkExperienceQuery) (*WorkExperienceQuery, error) {
  1565. if p.Filter != nil {
  1566. return p.Filter(query)
  1567. }
  1568. return query, nil
  1569. }
  1570. // WorkExperiencePageList is WorkExperience PageList result.
  1571. type WorkExperiencePageList struct {
  1572. List []*WorkExperience `json:"list"`
  1573. PageDetails *PageDetails `json:"pageDetails"`
  1574. }
  1575. func (we *WorkExperienceQuery) Page(
  1576. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WorkExperiencePaginateOption,
  1577. ) (*WorkExperiencePageList, error) {
  1578. pager, err := newWorkExperiencePager(opts)
  1579. if err != nil {
  1580. return nil, err
  1581. }
  1582. if we, err = pager.ApplyFilter(we); err != nil {
  1583. return nil, err
  1584. }
  1585. ret := &WorkExperiencePageList{}
  1586. ret.PageDetails = &PageDetails{
  1587. Page: pageNum,
  1588. Size: pageSize,
  1589. }
  1590. query := we.Clone()
  1591. query.ctx.Fields = nil
  1592. count, err := query.Count(ctx)
  1593. if err != nil {
  1594. return nil, err
  1595. }
  1596. ret.PageDetails.Total = uint64(count)
  1597. if pager.Order != nil {
  1598. we = we.Order(pager.Order)
  1599. } else {
  1600. we = we.Order(DefaultWorkExperienceOrder)
  1601. }
  1602. we = we.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1603. list, err := we.All(ctx)
  1604. if err != nil {
  1605. return nil, err
  1606. }
  1607. ret.List = list
  1608. return ret, nil
  1609. }
  1610. type WpChatroomPager struct {
  1611. Order wpchatroom.OrderOption
  1612. Filter func(*WpChatroomQuery) (*WpChatroomQuery, error)
  1613. }
  1614. // WpChatroomPaginateOption enables pagination customization.
  1615. type WpChatroomPaginateOption func(*WpChatroomPager)
  1616. // DefaultWpChatroomOrder is the default ordering of WpChatroom.
  1617. var DefaultWpChatroomOrder = Desc(wpchatroom.FieldID)
  1618. func newWpChatroomPager(opts []WpChatroomPaginateOption) (*WpChatroomPager, error) {
  1619. pager := &WpChatroomPager{}
  1620. for _, opt := range opts {
  1621. opt(pager)
  1622. }
  1623. if pager.Order == nil {
  1624. pager.Order = DefaultWpChatroomOrder
  1625. }
  1626. return pager, nil
  1627. }
  1628. func (p *WpChatroomPager) ApplyFilter(query *WpChatroomQuery) (*WpChatroomQuery, error) {
  1629. if p.Filter != nil {
  1630. return p.Filter(query)
  1631. }
  1632. return query, nil
  1633. }
  1634. // WpChatroomPageList is WpChatroom PageList result.
  1635. type WpChatroomPageList struct {
  1636. List []*WpChatroom `json:"list"`
  1637. PageDetails *PageDetails `json:"pageDetails"`
  1638. }
  1639. func (wc *WpChatroomQuery) Page(
  1640. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WpChatroomPaginateOption,
  1641. ) (*WpChatroomPageList, error) {
  1642. pager, err := newWpChatroomPager(opts)
  1643. if err != nil {
  1644. return nil, err
  1645. }
  1646. if wc, err = pager.ApplyFilter(wc); err != nil {
  1647. return nil, err
  1648. }
  1649. ret := &WpChatroomPageList{}
  1650. ret.PageDetails = &PageDetails{
  1651. Page: pageNum,
  1652. Size: pageSize,
  1653. }
  1654. query := wc.Clone()
  1655. query.ctx.Fields = nil
  1656. count, err := query.Count(ctx)
  1657. if err != nil {
  1658. return nil, err
  1659. }
  1660. ret.PageDetails.Total = uint64(count)
  1661. if pager.Order != nil {
  1662. wc = wc.Order(pager.Order)
  1663. } else {
  1664. wc = wc.Order(DefaultWpChatroomOrder)
  1665. }
  1666. wc = wc.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1667. list, err := wc.All(ctx)
  1668. if err != nil {
  1669. return nil, err
  1670. }
  1671. ret.List = list
  1672. return ret, nil
  1673. }
  1674. type WpChatroomMemberPager struct {
  1675. Order wpchatroommember.OrderOption
  1676. Filter func(*WpChatroomMemberQuery) (*WpChatroomMemberQuery, error)
  1677. }
  1678. // WpChatroomMemberPaginateOption enables pagination customization.
  1679. type WpChatroomMemberPaginateOption func(*WpChatroomMemberPager)
  1680. // DefaultWpChatroomMemberOrder is the default ordering of WpChatroomMember.
  1681. var DefaultWpChatroomMemberOrder = Desc(wpchatroommember.FieldID)
  1682. func newWpChatroomMemberPager(opts []WpChatroomMemberPaginateOption) (*WpChatroomMemberPager, error) {
  1683. pager := &WpChatroomMemberPager{}
  1684. for _, opt := range opts {
  1685. opt(pager)
  1686. }
  1687. if pager.Order == nil {
  1688. pager.Order = DefaultWpChatroomMemberOrder
  1689. }
  1690. return pager, nil
  1691. }
  1692. func (p *WpChatroomMemberPager) ApplyFilter(query *WpChatroomMemberQuery) (*WpChatroomMemberQuery, error) {
  1693. if p.Filter != nil {
  1694. return p.Filter(query)
  1695. }
  1696. return query, nil
  1697. }
  1698. // WpChatroomMemberPageList is WpChatroomMember PageList result.
  1699. type WpChatroomMemberPageList struct {
  1700. List []*WpChatroomMember `json:"list"`
  1701. PageDetails *PageDetails `json:"pageDetails"`
  1702. }
  1703. func (wcm *WpChatroomMemberQuery) Page(
  1704. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WpChatroomMemberPaginateOption,
  1705. ) (*WpChatroomMemberPageList, error) {
  1706. pager, err := newWpChatroomMemberPager(opts)
  1707. if err != nil {
  1708. return nil, err
  1709. }
  1710. if wcm, err = pager.ApplyFilter(wcm); err != nil {
  1711. return nil, err
  1712. }
  1713. ret := &WpChatroomMemberPageList{}
  1714. ret.PageDetails = &PageDetails{
  1715. Page: pageNum,
  1716. Size: pageSize,
  1717. }
  1718. query := wcm.Clone()
  1719. query.ctx.Fields = nil
  1720. count, err := query.Count(ctx)
  1721. if err != nil {
  1722. return nil, err
  1723. }
  1724. ret.PageDetails.Total = uint64(count)
  1725. if pager.Order != nil {
  1726. wcm = wcm.Order(pager.Order)
  1727. } else {
  1728. wcm = wcm.Order(DefaultWpChatroomMemberOrder)
  1729. }
  1730. wcm = wcm.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1731. list, err := wcm.All(ctx)
  1732. if err != nil {
  1733. return nil, err
  1734. }
  1735. ret.List = list
  1736. return ret, nil
  1737. }
  1738. type WxPager struct {
  1739. Order wx.OrderOption
  1740. Filter func(*WxQuery) (*WxQuery, error)
  1741. }
  1742. // WxPaginateOption enables pagination customization.
  1743. type WxPaginateOption func(*WxPager)
  1744. // DefaultWxOrder is the default ordering of Wx.
  1745. var DefaultWxOrder = Desc(wx.FieldID)
  1746. func newWxPager(opts []WxPaginateOption) (*WxPager, error) {
  1747. pager := &WxPager{}
  1748. for _, opt := range opts {
  1749. opt(pager)
  1750. }
  1751. if pager.Order == nil {
  1752. pager.Order = DefaultWxOrder
  1753. }
  1754. return pager, nil
  1755. }
  1756. func (p *WxPager) ApplyFilter(query *WxQuery) (*WxQuery, error) {
  1757. if p.Filter != nil {
  1758. return p.Filter(query)
  1759. }
  1760. return query, nil
  1761. }
  1762. // WxPageList is Wx PageList result.
  1763. type WxPageList struct {
  1764. List []*Wx `json:"list"`
  1765. PageDetails *PageDetails `json:"pageDetails"`
  1766. }
  1767. func (w *WxQuery) Page(
  1768. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WxPaginateOption,
  1769. ) (*WxPageList, error) {
  1770. pager, err := newWxPager(opts)
  1771. if err != nil {
  1772. return nil, err
  1773. }
  1774. if w, err = pager.ApplyFilter(w); err != nil {
  1775. return nil, err
  1776. }
  1777. ret := &WxPageList{}
  1778. ret.PageDetails = &PageDetails{
  1779. Page: pageNum,
  1780. Size: pageSize,
  1781. }
  1782. query := w.Clone()
  1783. query.ctx.Fields = nil
  1784. count, err := query.Count(ctx)
  1785. if err != nil {
  1786. return nil, err
  1787. }
  1788. ret.PageDetails.Total = uint64(count)
  1789. if pager.Order != nil {
  1790. w = w.Order(pager.Order)
  1791. } else {
  1792. w = w.Order(DefaultWxOrder)
  1793. }
  1794. w = w.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1795. list, err := w.All(ctx)
  1796. if err != nil {
  1797. return nil, err
  1798. }
  1799. ret.List = list
  1800. return ret, nil
  1801. }
  1802. type WxCardPager struct {
  1803. Order wxcard.OrderOption
  1804. Filter func(*WxCardQuery) (*WxCardQuery, error)
  1805. }
  1806. // WxCardPaginateOption enables pagination customization.
  1807. type WxCardPaginateOption func(*WxCardPager)
  1808. // DefaultWxCardOrder is the default ordering of WxCard.
  1809. var DefaultWxCardOrder = Desc(wxcard.FieldID)
  1810. func newWxCardPager(opts []WxCardPaginateOption) (*WxCardPager, error) {
  1811. pager := &WxCardPager{}
  1812. for _, opt := range opts {
  1813. opt(pager)
  1814. }
  1815. if pager.Order == nil {
  1816. pager.Order = DefaultWxCardOrder
  1817. }
  1818. return pager, nil
  1819. }
  1820. func (p *WxCardPager) ApplyFilter(query *WxCardQuery) (*WxCardQuery, error) {
  1821. if p.Filter != nil {
  1822. return p.Filter(query)
  1823. }
  1824. return query, nil
  1825. }
  1826. // WxCardPageList is WxCard PageList result.
  1827. type WxCardPageList struct {
  1828. List []*WxCard `json:"list"`
  1829. PageDetails *PageDetails `json:"pageDetails"`
  1830. }
  1831. func (wc *WxCardQuery) Page(
  1832. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WxCardPaginateOption,
  1833. ) (*WxCardPageList, error) {
  1834. pager, err := newWxCardPager(opts)
  1835. if err != nil {
  1836. return nil, err
  1837. }
  1838. if wc, err = pager.ApplyFilter(wc); err != nil {
  1839. return nil, err
  1840. }
  1841. ret := &WxCardPageList{}
  1842. ret.PageDetails = &PageDetails{
  1843. Page: pageNum,
  1844. Size: pageSize,
  1845. }
  1846. query := wc.Clone()
  1847. query.ctx.Fields = nil
  1848. count, err := query.Count(ctx)
  1849. if err != nil {
  1850. return nil, err
  1851. }
  1852. ret.PageDetails.Total = uint64(count)
  1853. if pager.Order != nil {
  1854. wc = wc.Order(pager.Order)
  1855. } else {
  1856. wc = wc.Order(DefaultWxCardOrder)
  1857. }
  1858. wc = wc.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1859. list, err := wc.All(ctx)
  1860. if err != nil {
  1861. return nil, err
  1862. }
  1863. ret.List = list
  1864. return ret, nil
  1865. }
  1866. type WxCardUserPager struct {
  1867. Order wxcarduser.OrderOption
  1868. Filter func(*WxCardUserQuery) (*WxCardUserQuery, error)
  1869. }
  1870. // WxCardUserPaginateOption enables pagination customization.
  1871. type WxCardUserPaginateOption func(*WxCardUserPager)
  1872. // DefaultWxCardUserOrder is the default ordering of WxCardUser.
  1873. var DefaultWxCardUserOrder = Desc(wxcarduser.FieldID)
  1874. func newWxCardUserPager(opts []WxCardUserPaginateOption) (*WxCardUserPager, error) {
  1875. pager := &WxCardUserPager{}
  1876. for _, opt := range opts {
  1877. opt(pager)
  1878. }
  1879. if pager.Order == nil {
  1880. pager.Order = DefaultWxCardUserOrder
  1881. }
  1882. return pager, nil
  1883. }
  1884. func (p *WxCardUserPager) ApplyFilter(query *WxCardUserQuery) (*WxCardUserQuery, error) {
  1885. if p.Filter != nil {
  1886. return p.Filter(query)
  1887. }
  1888. return query, nil
  1889. }
  1890. // WxCardUserPageList is WxCardUser PageList result.
  1891. type WxCardUserPageList struct {
  1892. List []*WxCardUser `json:"list"`
  1893. PageDetails *PageDetails `json:"pageDetails"`
  1894. }
  1895. func (wcu *WxCardUserQuery) Page(
  1896. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WxCardUserPaginateOption,
  1897. ) (*WxCardUserPageList, error) {
  1898. pager, err := newWxCardUserPager(opts)
  1899. if err != nil {
  1900. return nil, err
  1901. }
  1902. if wcu, err = pager.ApplyFilter(wcu); err != nil {
  1903. return nil, err
  1904. }
  1905. ret := &WxCardUserPageList{}
  1906. ret.PageDetails = &PageDetails{
  1907. Page: pageNum,
  1908. Size: pageSize,
  1909. }
  1910. query := wcu.Clone()
  1911. query.ctx.Fields = nil
  1912. count, err := query.Count(ctx)
  1913. if err != nil {
  1914. return nil, err
  1915. }
  1916. ret.PageDetails.Total = uint64(count)
  1917. if pager.Order != nil {
  1918. wcu = wcu.Order(pager.Order)
  1919. } else {
  1920. wcu = wcu.Order(DefaultWxCardUserOrder)
  1921. }
  1922. wcu = wcu.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1923. list, err := wcu.All(ctx)
  1924. if err != nil {
  1925. return nil, err
  1926. }
  1927. ret.List = list
  1928. return ret, nil
  1929. }
  1930. type WxCardVisitPager struct {
  1931. Order wxcardvisit.OrderOption
  1932. Filter func(*WxCardVisitQuery) (*WxCardVisitQuery, error)
  1933. }
  1934. // WxCardVisitPaginateOption enables pagination customization.
  1935. type WxCardVisitPaginateOption func(*WxCardVisitPager)
  1936. // DefaultWxCardVisitOrder is the default ordering of WxCardVisit.
  1937. var DefaultWxCardVisitOrder = Desc(wxcardvisit.FieldID)
  1938. func newWxCardVisitPager(opts []WxCardVisitPaginateOption) (*WxCardVisitPager, error) {
  1939. pager := &WxCardVisitPager{}
  1940. for _, opt := range opts {
  1941. opt(pager)
  1942. }
  1943. if pager.Order == nil {
  1944. pager.Order = DefaultWxCardVisitOrder
  1945. }
  1946. return pager, nil
  1947. }
  1948. func (p *WxCardVisitPager) ApplyFilter(query *WxCardVisitQuery) (*WxCardVisitQuery, error) {
  1949. if p.Filter != nil {
  1950. return p.Filter(query)
  1951. }
  1952. return query, nil
  1953. }
  1954. // WxCardVisitPageList is WxCardVisit PageList result.
  1955. type WxCardVisitPageList struct {
  1956. List []*WxCardVisit `json:"list"`
  1957. PageDetails *PageDetails `json:"pageDetails"`
  1958. }
  1959. func (wcv *WxCardVisitQuery) Page(
  1960. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WxCardVisitPaginateOption,
  1961. ) (*WxCardVisitPageList, error) {
  1962. pager, err := newWxCardVisitPager(opts)
  1963. if err != nil {
  1964. return nil, err
  1965. }
  1966. if wcv, err = pager.ApplyFilter(wcv); err != nil {
  1967. return nil, err
  1968. }
  1969. ret := &WxCardVisitPageList{}
  1970. ret.PageDetails = &PageDetails{
  1971. Page: pageNum,
  1972. Size: pageSize,
  1973. }
  1974. query := wcv.Clone()
  1975. query.ctx.Fields = nil
  1976. count, err := query.Count(ctx)
  1977. if err != nil {
  1978. return nil, err
  1979. }
  1980. ret.PageDetails.Total = uint64(count)
  1981. if pager.Order != nil {
  1982. wcv = wcv.Order(pager.Order)
  1983. } else {
  1984. wcv = wcv.Order(DefaultWxCardVisitOrder)
  1985. }
  1986. wcv = wcv.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1987. list, err := wcv.All(ctx)
  1988. if err != nil {
  1989. return nil, err
  1990. }
  1991. ret.List = list
  1992. return ret, nil
  1993. }