pagination.go 55 KB

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