pagination.go 60 KB

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