pagination.go 44 KB

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