pagination.go 87 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990
  1. // Code generated by ent, DO NOT EDIT.
  2. package ent
  3. import (
  4. "context"
  5. "fmt"
  6. "wechat-api/ent/addwechatfriendlog"
  7. "wechat-api/ent/agent"
  8. "wechat-api/ent/agentbase"
  9. "wechat-api/ent/aliyunavatar"
  10. "wechat-api/ent/allocagent"
  11. "wechat-api/ent/apikey"
  12. "wechat-api/ent/batchmsg"
  13. "wechat-api/ent/category"
  14. "wechat-api/ent/chatrecords"
  15. "wechat-api/ent/chatsession"
  16. "wechat-api/ent/compapiasynctask"
  17. "wechat-api/ent/contact"
  18. "wechat-api/ent/contactfield"
  19. "wechat-api/ent/contactfieldtemplate"
  20. "wechat-api/ent/creditbalance"
  21. "wechat-api/ent/creditusage"
  22. "wechat-api/ent/employee"
  23. "wechat-api/ent/employeeconfig"
  24. "wechat-api/ent/label"
  25. "wechat-api/ent/labellog"
  26. "wechat-api/ent/labelrelationship"
  27. "wechat-api/ent/labeltagging"
  28. "wechat-api/ent/message"
  29. "wechat-api/ent/messagerecords"
  30. "wechat-api/ent/msg"
  31. "wechat-api/ent/payrecharge"
  32. "wechat-api/ent/server"
  33. "wechat-api/ent/sopnode"
  34. "wechat-api/ent/sopstage"
  35. "wechat-api/ent/soptask"
  36. "wechat-api/ent/token"
  37. "wechat-api/ent/tutorial"
  38. "wechat-api/ent/usagedetail"
  39. "wechat-api/ent/usagestatisticday"
  40. "wechat-api/ent/usagestatistichour"
  41. "wechat-api/ent/usagestatisticmonth"
  42. "wechat-api/ent/usagetotal"
  43. "wechat-api/ent/whatsapp"
  44. "wechat-api/ent/whatsappchannel"
  45. "wechat-api/ent/workexperience"
  46. "wechat-api/ent/wpchatroom"
  47. "wechat-api/ent/wpchatroommember"
  48. "wechat-api/ent/wx"
  49. "wechat-api/ent/wxcard"
  50. "wechat-api/ent/wxcarduser"
  51. "wechat-api/ent/wxcardvisit"
  52. "wechat-api/ent/xunji"
  53. "wechat-api/ent/xunjiservice"
  54. )
  55. const errInvalidPage = "INVALID_PAGE"
  56. const (
  57. listField = "list"
  58. pageNumField = "pageNum"
  59. pageSizeField = "pageSize"
  60. )
  61. type PageDetails struct {
  62. Page uint64 `json:"page"`
  63. Size uint64 `json:"size"`
  64. Total uint64 `json:"total"`
  65. }
  66. // OrderDirection defines the directions in which to order a list of items.
  67. type OrderDirection string
  68. const (
  69. // OrderDirectionAsc specifies an ascending order.
  70. OrderDirectionAsc OrderDirection = "ASC"
  71. // OrderDirectionDesc specifies a descending order.
  72. OrderDirectionDesc OrderDirection = "DESC"
  73. )
  74. // Validate the order direction value.
  75. func (o OrderDirection) Validate() error {
  76. if o != OrderDirectionAsc && o != OrderDirectionDesc {
  77. return fmt.Errorf("%s is not a valid OrderDirection", o)
  78. }
  79. return nil
  80. }
  81. // String implements fmt.Stringer interface.
  82. func (o OrderDirection) String() string {
  83. return string(o)
  84. }
  85. func (o OrderDirection) reverse() OrderDirection {
  86. if o == OrderDirectionDesc {
  87. return OrderDirectionAsc
  88. }
  89. return OrderDirectionDesc
  90. }
  91. const errInvalidPagination = "INVALID_PAGINATION"
  92. type AddWechatFriendLogPager struct {
  93. Order addwechatfriendlog.OrderOption
  94. Filter func(*AddWechatFriendLogQuery) (*AddWechatFriendLogQuery, error)
  95. }
  96. // AddWechatFriendLogPaginateOption enables pagination customization.
  97. type AddWechatFriendLogPaginateOption func(*AddWechatFriendLogPager)
  98. // DefaultAddWechatFriendLogOrder is the default ordering of AddWechatFriendLog.
  99. var DefaultAddWechatFriendLogOrder = Desc(addwechatfriendlog.FieldID)
  100. func newAddWechatFriendLogPager(opts []AddWechatFriendLogPaginateOption) (*AddWechatFriendLogPager, error) {
  101. pager := &AddWechatFriendLogPager{}
  102. for _, opt := range opts {
  103. opt(pager)
  104. }
  105. if pager.Order == nil {
  106. pager.Order = DefaultAddWechatFriendLogOrder
  107. }
  108. return pager, nil
  109. }
  110. func (p *AddWechatFriendLogPager) ApplyFilter(query *AddWechatFriendLogQuery) (*AddWechatFriendLogQuery, error) {
  111. if p.Filter != nil {
  112. return p.Filter(query)
  113. }
  114. return query, nil
  115. }
  116. // AddWechatFriendLogPageList is AddWechatFriendLog PageList result.
  117. type AddWechatFriendLogPageList struct {
  118. List []*AddWechatFriendLog `json:"list"`
  119. PageDetails *PageDetails `json:"pageDetails"`
  120. }
  121. func (awfl *AddWechatFriendLogQuery) Page(
  122. ctx context.Context, pageNum uint64, pageSize uint64, opts ...AddWechatFriendLogPaginateOption,
  123. ) (*AddWechatFriendLogPageList, error) {
  124. pager, err := newAddWechatFriendLogPager(opts)
  125. if err != nil {
  126. return nil, err
  127. }
  128. if awfl, err = pager.ApplyFilter(awfl); err != nil {
  129. return nil, err
  130. }
  131. ret := &AddWechatFriendLogPageList{}
  132. ret.PageDetails = &PageDetails{
  133. Page: pageNum,
  134. Size: pageSize,
  135. }
  136. query := awfl.Clone()
  137. query.ctx.Fields = nil
  138. count, err := query.Count(ctx)
  139. if err != nil {
  140. return nil, err
  141. }
  142. ret.PageDetails.Total = uint64(count)
  143. if pager.Order != nil {
  144. awfl = awfl.Order(pager.Order)
  145. } else {
  146. awfl = awfl.Order(DefaultAddWechatFriendLogOrder)
  147. }
  148. awfl = awfl.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  149. list, err := awfl.All(ctx)
  150. if err != nil {
  151. return nil, err
  152. }
  153. ret.List = list
  154. return ret, nil
  155. }
  156. type AgentPager struct {
  157. Order agent.OrderOption
  158. Filter func(*AgentQuery) (*AgentQuery, error)
  159. }
  160. // AgentPaginateOption enables pagination customization.
  161. type AgentPaginateOption func(*AgentPager)
  162. // DefaultAgentOrder is the default ordering of Agent.
  163. var DefaultAgentOrder = Desc(agent.FieldID)
  164. func newAgentPager(opts []AgentPaginateOption) (*AgentPager, error) {
  165. pager := &AgentPager{}
  166. for _, opt := range opts {
  167. opt(pager)
  168. }
  169. if pager.Order == nil {
  170. pager.Order = DefaultAgentOrder
  171. }
  172. return pager, nil
  173. }
  174. func (p *AgentPager) ApplyFilter(query *AgentQuery) (*AgentQuery, error) {
  175. if p.Filter != nil {
  176. return p.Filter(query)
  177. }
  178. return query, nil
  179. }
  180. // AgentPageList is Agent PageList result.
  181. type AgentPageList struct {
  182. List []*Agent `json:"list"`
  183. PageDetails *PageDetails `json:"pageDetails"`
  184. }
  185. func (a *AgentQuery) Page(
  186. ctx context.Context, pageNum uint64, pageSize uint64, opts ...AgentPaginateOption,
  187. ) (*AgentPageList, error) {
  188. pager, err := newAgentPager(opts)
  189. if err != nil {
  190. return nil, err
  191. }
  192. if a, err = pager.ApplyFilter(a); err != nil {
  193. return nil, err
  194. }
  195. ret := &AgentPageList{}
  196. ret.PageDetails = &PageDetails{
  197. Page: pageNum,
  198. Size: pageSize,
  199. }
  200. query := a.Clone()
  201. query.ctx.Fields = nil
  202. count, err := query.Count(ctx)
  203. if err != nil {
  204. return nil, err
  205. }
  206. ret.PageDetails.Total = uint64(count)
  207. if pager.Order != nil {
  208. a = a.Order(pager.Order)
  209. } else {
  210. a = a.Order(DefaultAgentOrder)
  211. }
  212. a = a.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  213. list, err := a.All(ctx)
  214. if err != nil {
  215. return nil, err
  216. }
  217. ret.List = list
  218. return ret, nil
  219. }
  220. type AgentBasePager struct {
  221. Order agentbase.OrderOption
  222. Filter func(*AgentBaseQuery) (*AgentBaseQuery, error)
  223. }
  224. // AgentBasePaginateOption enables pagination customization.
  225. type AgentBasePaginateOption func(*AgentBasePager)
  226. // DefaultAgentBaseOrder is the default ordering of AgentBase.
  227. var DefaultAgentBaseOrder = Desc(agentbase.FieldID)
  228. func newAgentBasePager(opts []AgentBasePaginateOption) (*AgentBasePager, error) {
  229. pager := &AgentBasePager{}
  230. for _, opt := range opts {
  231. opt(pager)
  232. }
  233. if pager.Order == nil {
  234. pager.Order = DefaultAgentBaseOrder
  235. }
  236. return pager, nil
  237. }
  238. func (p *AgentBasePager) ApplyFilter(query *AgentBaseQuery) (*AgentBaseQuery, error) {
  239. if p.Filter != nil {
  240. return p.Filter(query)
  241. }
  242. return query, nil
  243. }
  244. // AgentBasePageList is AgentBase PageList result.
  245. type AgentBasePageList struct {
  246. List []*AgentBase `json:"list"`
  247. PageDetails *PageDetails `json:"pageDetails"`
  248. }
  249. func (ab *AgentBaseQuery) Page(
  250. ctx context.Context, pageNum uint64, pageSize uint64, opts ...AgentBasePaginateOption,
  251. ) (*AgentBasePageList, error) {
  252. pager, err := newAgentBasePager(opts)
  253. if err != nil {
  254. return nil, err
  255. }
  256. if ab, err = pager.ApplyFilter(ab); err != nil {
  257. return nil, err
  258. }
  259. ret := &AgentBasePageList{}
  260. ret.PageDetails = &PageDetails{
  261. Page: pageNum,
  262. Size: pageSize,
  263. }
  264. query := ab.Clone()
  265. query.ctx.Fields = nil
  266. count, err := query.Count(ctx)
  267. if err != nil {
  268. return nil, err
  269. }
  270. ret.PageDetails.Total = uint64(count)
  271. if pager.Order != nil {
  272. ab = ab.Order(pager.Order)
  273. } else {
  274. ab = ab.Order(DefaultAgentBaseOrder)
  275. }
  276. ab = ab.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  277. list, err := ab.All(ctx)
  278. if err != nil {
  279. return nil, err
  280. }
  281. ret.List = list
  282. return ret, nil
  283. }
  284. type AliyunAvatarPager struct {
  285. Order aliyunavatar.OrderOption
  286. Filter func(*AliyunAvatarQuery) (*AliyunAvatarQuery, error)
  287. }
  288. // AliyunAvatarPaginateOption enables pagination customization.
  289. type AliyunAvatarPaginateOption func(*AliyunAvatarPager)
  290. // DefaultAliyunAvatarOrder is the default ordering of AliyunAvatar.
  291. var DefaultAliyunAvatarOrder = Desc(aliyunavatar.FieldID)
  292. func newAliyunAvatarPager(opts []AliyunAvatarPaginateOption) (*AliyunAvatarPager, error) {
  293. pager := &AliyunAvatarPager{}
  294. for _, opt := range opts {
  295. opt(pager)
  296. }
  297. if pager.Order == nil {
  298. pager.Order = DefaultAliyunAvatarOrder
  299. }
  300. return pager, nil
  301. }
  302. func (p *AliyunAvatarPager) ApplyFilter(query *AliyunAvatarQuery) (*AliyunAvatarQuery, error) {
  303. if p.Filter != nil {
  304. return p.Filter(query)
  305. }
  306. return query, nil
  307. }
  308. // AliyunAvatarPageList is AliyunAvatar PageList result.
  309. type AliyunAvatarPageList struct {
  310. List []*AliyunAvatar `json:"list"`
  311. PageDetails *PageDetails `json:"pageDetails"`
  312. }
  313. func (aa *AliyunAvatarQuery) Page(
  314. ctx context.Context, pageNum uint64, pageSize uint64, opts ...AliyunAvatarPaginateOption,
  315. ) (*AliyunAvatarPageList, error) {
  316. pager, err := newAliyunAvatarPager(opts)
  317. if err != nil {
  318. return nil, err
  319. }
  320. if aa, err = pager.ApplyFilter(aa); err != nil {
  321. return nil, err
  322. }
  323. ret := &AliyunAvatarPageList{}
  324. ret.PageDetails = &PageDetails{
  325. Page: pageNum,
  326. Size: pageSize,
  327. }
  328. query := aa.Clone()
  329. query.ctx.Fields = nil
  330. count, err := query.Count(ctx)
  331. if err != nil {
  332. return nil, err
  333. }
  334. ret.PageDetails.Total = uint64(count)
  335. if pager.Order != nil {
  336. aa = aa.Order(pager.Order)
  337. } else {
  338. aa = aa.Order(DefaultAliyunAvatarOrder)
  339. }
  340. aa = aa.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  341. list, err := aa.All(ctx)
  342. if err != nil {
  343. return nil, err
  344. }
  345. ret.List = list
  346. return ret, nil
  347. }
  348. type AllocAgentPager struct {
  349. Order allocagent.OrderOption
  350. Filter func(*AllocAgentQuery) (*AllocAgentQuery, error)
  351. }
  352. // AllocAgentPaginateOption enables pagination customization.
  353. type AllocAgentPaginateOption func(*AllocAgentPager)
  354. // DefaultAllocAgentOrder is the default ordering of AllocAgent.
  355. var DefaultAllocAgentOrder = Desc(allocagent.FieldID)
  356. func newAllocAgentPager(opts []AllocAgentPaginateOption) (*AllocAgentPager, error) {
  357. pager := &AllocAgentPager{}
  358. for _, opt := range opts {
  359. opt(pager)
  360. }
  361. if pager.Order == nil {
  362. pager.Order = DefaultAllocAgentOrder
  363. }
  364. return pager, nil
  365. }
  366. func (p *AllocAgentPager) ApplyFilter(query *AllocAgentQuery) (*AllocAgentQuery, error) {
  367. if p.Filter != nil {
  368. return p.Filter(query)
  369. }
  370. return query, nil
  371. }
  372. // AllocAgentPageList is AllocAgent PageList result.
  373. type AllocAgentPageList struct {
  374. List []*AllocAgent `json:"list"`
  375. PageDetails *PageDetails `json:"pageDetails"`
  376. }
  377. func (aa *AllocAgentQuery) Page(
  378. ctx context.Context, pageNum uint64, pageSize uint64, opts ...AllocAgentPaginateOption,
  379. ) (*AllocAgentPageList, error) {
  380. pager, err := newAllocAgentPager(opts)
  381. if err != nil {
  382. return nil, err
  383. }
  384. if aa, err = pager.ApplyFilter(aa); err != nil {
  385. return nil, err
  386. }
  387. ret := &AllocAgentPageList{}
  388. ret.PageDetails = &PageDetails{
  389. Page: pageNum,
  390. Size: pageSize,
  391. }
  392. query := aa.Clone()
  393. query.ctx.Fields = nil
  394. count, err := query.Count(ctx)
  395. if err != nil {
  396. return nil, err
  397. }
  398. ret.PageDetails.Total = uint64(count)
  399. if pager.Order != nil {
  400. aa = aa.Order(pager.Order)
  401. } else {
  402. aa = aa.Order(DefaultAllocAgentOrder)
  403. }
  404. aa = aa.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  405. list, err := aa.All(ctx)
  406. if err != nil {
  407. return nil, err
  408. }
  409. ret.List = list
  410. return ret, nil
  411. }
  412. type ApiKeyPager struct {
  413. Order apikey.OrderOption
  414. Filter func(*ApiKeyQuery) (*ApiKeyQuery, error)
  415. }
  416. // ApiKeyPaginateOption enables pagination customization.
  417. type ApiKeyPaginateOption func(*ApiKeyPager)
  418. // DefaultApiKeyOrder is the default ordering of ApiKey.
  419. var DefaultApiKeyOrder = Desc(apikey.FieldID)
  420. func newApiKeyPager(opts []ApiKeyPaginateOption) (*ApiKeyPager, error) {
  421. pager := &ApiKeyPager{}
  422. for _, opt := range opts {
  423. opt(pager)
  424. }
  425. if pager.Order == nil {
  426. pager.Order = DefaultApiKeyOrder
  427. }
  428. return pager, nil
  429. }
  430. func (p *ApiKeyPager) ApplyFilter(query *ApiKeyQuery) (*ApiKeyQuery, error) {
  431. if p.Filter != nil {
  432. return p.Filter(query)
  433. }
  434. return query, nil
  435. }
  436. // ApiKeyPageList is ApiKey PageList result.
  437. type ApiKeyPageList struct {
  438. List []*ApiKey `json:"list"`
  439. PageDetails *PageDetails `json:"pageDetails"`
  440. }
  441. func (ak *ApiKeyQuery) Page(
  442. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ApiKeyPaginateOption,
  443. ) (*ApiKeyPageList, error) {
  444. pager, err := newApiKeyPager(opts)
  445. if err != nil {
  446. return nil, err
  447. }
  448. if ak, err = pager.ApplyFilter(ak); err != nil {
  449. return nil, err
  450. }
  451. ret := &ApiKeyPageList{}
  452. ret.PageDetails = &PageDetails{
  453. Page: pageNum,
  454. Size: pageSize,
  455. }
  456. query := ak.Clone()
  457. query.ctx.Fields = nil
  458. count, err := query.Count(ctx)
  459. if err != nil {
  460. return nil, err
  461. }
  462. ret.PageDetails.Total = uint64(count)
  463. if pager.Order != nil {
  464. ak = ak.Order(pager.Order)
  465. } else {
  466. ak = ak.Order(DefaultApiKeyOrder)
  467. }
  468. ak = ak.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  469. list, err := ak.All(ctx)
  470. if err != nil {
  471. return nil, err
  472. }
  473. ret.List = list
  474. return ret, nil
  475. }
  476. type BatchMsgPager struct {
  477. Order batchmsg.OrderOption
  478. Filter func(*BatchMsgQuery) (*BatchMsgQuery, error)
  479. }
  480. // BatchMsgPaginateOption enables pagination customization.
  481. type BatchMsgPaginateOption func(*BatchMsgPager)
  482. // DefaultBatchMsgOrder is the default ordering of BatchMsg.
  483. var DefaultBatchMsgOrder = Desc(batchmsg.FieldID)
  484. func newBatchMsgPager(opts []BatchMsgPaginateOption) (*BatchMsgPager, error) {
  485. pager := &BatchMsgPager{}
  486. for _, opt := range opts {
  487. opt(pager)
  488. }
  489. if pager.Order == nil {
  490. pager.Order = DefaultBatchMsgOrder
  491. }
  492. return pager, nil
  493. }
  494. func (p *BatchMsgPager) ApplyFilter(query *BatchMsgQuery) (*BatchMsgQuery, error) {
  495. if p.Filter != nil {
  496. return p.Filter(query)
  497. }
  498. return query, nil
  499. }
  500. // BatchMsgPageList is BatchMsg PageList result.
  501. type BatchMsgPageList struct {
  502. List []*BatchMsg `json:"list"`
  503. PageDetails *PageDetails `json:"pageDetails"`
  504. }
  505. func (bm *BatchMsgQuery) Page(
  506. ctx context.Context, pageNum uint64, pageSize uint64, opts ...BatchMsgPaginateOption,
  507. ) (*BatchMsgPageList, error) {
  508. pager, err := newBatchMsgPager(opts)
  509. if err != nil {
  510. return nil, err
  511. }
  512. if bm, err = pager.ApplyFilter(bm); err != nil {
  513. return nil, err
  514. }
  515. ret := &BatchMsgPageList{}
  516. ret.PageDetails = &PageDetails{
  517. Page: pageNum,
  518. Size: pageSize,
  519. }
  520. query := bm.Clone()
  521. query.ctx.Fields = nil
  522. count, err := query.Count(ctx)
  523. if err != nil {
  524. return nil, err
  525. }
  526. ret.PageDetails.Total = uint64(count)
  527. if pager.Order != nil {
  528. bm = bm.Order(pager.Order)
  529. } else {
  530. bm = bm.Order(DefaultBatchMsgOrder)
  531. }
  532. bm = bm.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  533. list, err := bm.All(ctx)
  534. if err != nil {
  535. return nil, err
  536. }
  537. ret.List = list
  538. return ret, nil
  539. }
  540. type CategoryPager struct {
  541. Order category.OrderOption
  542. Filter func(*CategoryQuery) (*CategoryQuery, error)
  543. }
  544. // CategoryPaginateOption enables pagination customization.
  545. type CategoryPaginateOption func(*CategoryPager)
  546. // DefaultCategoryOrder is the default ordering of Category.
  547. var DefaultCategoryOrder = Desc(category.FieldID)
  548. func newCategoryPager(opts []CategoryPaginateOption) (*CategoryPager, error) {
  549. pager := &CategoryPager{}
  550. for _, opt := range opts {
  551. opt(pager)
  552. }
  553. if pager.Order == nil {
  554. pager.Order = DefaultCategoryOrder
  555. }
  556. return pager, nil
  557. }
  558. func (p *CategoryPager) ApplyFilter(query *CategoryQuery) (*CategoryQuery, error) {
  559. if p.Filter != nil {
  560. return p.Filter(query)
  561. }
  562. return query, nil
  563. }
  564. // CategoryPageList is Category PageList result.
  565. type CategoryPageList struct {
  566. List []*Category `json:"list"`
  567. PageDetails *PageDetails `json:"pageDetails"`
  568. }
  569. func (c *CategoryQuery) Page(
  570. ctx context.Context, pageNum uint64, pageSize uint64, opts ...CategoryPaginateOption,
  571. ) (*CategoryPageList, error) {
  572. pager, err := newCategoryPager(opts)
  573. if err != nil {
  574. return nil, err
  575. }
  576. if c, err = pager.ApplyFilter(c); err != nil {
  577. return nil, err
  578. }
  579. ret := &CategoryPageList{}
  580. ret.PageDetails = &PageDetails{
  581. Page: pageNum,
  582. Size: pageSize,
  583. }
  584. query := c.Clone()
  585. query.ctx.Fields = nil
  586. count, err := query.Count(ctx)
  587. if err != nil {
  588. return nil, err
  589. }
  590. ret.PageDetails.Total = uint64(count)
  591. if pager.Order != nil {
  592. c = c.Order(pager.Order)
  593. } else {
  594. c = c.Order(DefaultCategoryOrder)
  595. }
  596. c = c.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  597. list, err := c.All(ctx)
  598. if err != nil {
  599. return nil, err
  600. }
  601. ret.List = list
  602. return ret, nil
  603. }
  604. type ChatRecordsPager struct {
  605. Order chatrecords.OrderOption
  606. Filter func(*ChatRecordsQuery) (*ChatRecordsQuery, error)
  607. }
  608. // ChatRecordsPaginateOption enables pagination customization.
  609. type ChatRecordsPaginateOption func(*ChatRecordsPager)
  610. // DefaultChatRecordsOrder is the default ordering of ChatRecords.
  611. var DefaultChatRecordsOrder = Desc(chatrecords.FieldID)
  612. func newChatRecordsPager(opts []ChatRecordsPaginateOption) (*ChatRecordsPager, error) {
  613. pager := &ChatRecordsPager{}
  614. for _, opt := range opts {
  615. opt(pager)
  616. }
  617. if pager.Order == nil {
  618. pager.Order = DefaultChatRecordsOrder
  619. }
  620. return pager, nil
  621. }
  622. func (p *ChatRecordsPager) ApplyFilter(query *ChatRecordsQuery) (*ChatRecordsQuery, error) {
  623. if p.Filter != nil {
  624. return p.Filter(query)
  625. }
  626. return query, nil
  627. }
  628. // ChatRecordsPageList is ChatRecords PageList result.
  629. type ChatRecordsPageList struct {
  630. List []*ChatRecords `json:"list"`
  631. PageDetails *PageDetails `json:"pageDetails"`
  632. }
  633. func (cr *ChatRecordsQuery) Page(
  634. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ChatRecordsPaginateOption,
  635. ) (*ChatRecordsPageList, error) {
  636. pager, err := newChatRecordsPager(opts)
  637. if err != nil {
  638. return nil, err
  639. }
  640. if cr, err = pager.ApplyFilter(cr); err != nil {
  641. return nil, err
  642. }
  643. ret := &ChatRecordsPageList{}
  644. ret.PageDetails = &PageDetails{
  645. Page: pageNum,
  646. Size: pageSize,
  647. }
  648. query := cr.Clone()
  649. query.ctx.Fields = nil
  650. count, err := query.Count(ctx)
  651. if err != nil {
  652. return nil, err
  653. }
  654. ret.PageDetails.Total = uint64(count)
  655. if pager.Order != nil {
  656. cr = cr.Order(pager.Order)
  657. } else {
  658. cr = cr.Order(DefaultChatRecordsOrder)
  659. }
  660. cr = cr.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  661. list, err := cr.All(ctx)
  662. if err != nil {
  663. return nil, err
  664. }
  665. ret.List = list
  666. return ret, nil
  667. }
  668. type ChatSessionPager struct {
  669. Order chatsession.OrderOption
  670. Filter func(*ChatSessionQuery) (*ChatSessionQuery, error)
  671. }
  672. // ChatSessionPaginateOption enables pagination customization.
  673. type ChatSessionPaginateOption func(*ChatSessionPager)
  674. // DefaultChatSessionOrder is the default ordering of ChatSession.
  675. var DefaultChatSessionOrder = Desc(chatsession.FieldID)
  676. func newChatSessionPager(opts []ChatSessionPaginateOption) (*ChatSessionPager, error) {
  677. pager := &ChatSessionPager{}
  678. for _, opt := range opts {
  679. opt(pager)
  680. }
  681. if pager.Order == nil {
  682. pager.Order = DefaultChatSessionOrder
  683. }
  684. return pager, nil
  685. }
  686. func (p *ChatSessionPager) ApplyFilter(query *ChatSessionQuery) (*ChatSessionQuery, error) {
  687. if p.Filter != nil {
  688. return p.Filter(query)
  689. }
  690. return query, nil
  691. }
  692. // ChatSessionPageList is ChatSession PageList result.
  693. type ChatSessionPageList struct {
  694. List []*ChatSession `json:"list"`
  695. PageDetails *PageDetails `json:"pageDetails"`
  696. }
  697. func (cs *ChatSessionQuery) Page(
  698. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ChatSessionPaginateOption,
  699. ) (*ChatSessionPageList, error) {
  700. pager, err := newChatSessionPager(opts)
  701. if err != nil {
  702. return nil, err
  703. }
  704. if cs, err = pager.ApplyFilter(cs); err != nil {
  705. return nil, err
  706. }
  707. ret := &ChatSessionPageList{}
  708. ret.PageDetails = &PageDetails{
  709. Page: pageNum,
  710. Size: pageSize,
  711. }
  712. query := cs.Clone()
  713. query.ctx.Fields = nil
  714. count, err := query.Count(ctx)
  715. if err != nil {
  716. return nil, err
  717. }
  718. ret.PageDetails.Total = uint64(count)
  719. if pager.Order != nil {
  720. cs = cs.Order(pager.Order)
  721. } else {
  722. cs = cs.Order(DefaultChatSessionOrder)
  723. }
  724. cs = cs.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  725. list, err := cs.All(ctx)
  726. if err != nil {
  727. return nil, err
  728. }
  729. ret.List = list
  730. return ret, nil
  731. }
  732. type CompapiAsynctaskPager struct {
  733. Order compapiasynctask.OrderOption
  734. Filter func(*CompapiAsynctaskQuery) (*CompapiAsynctaskQuery, error)
  735. }
  736. // CompapiAsynctaskPaginateOption enables pagination customization.
  737. type CompapiAsynctaskPaginateOption func(*CompapiAsynctaskPager)
  738. // DefaultCompapiAsynctaskOrder is the default ordering of CompapiAsynctask.
  739. var DefaultCompapiAsynctaskOrder = Desc(compapiasynctask.FieldID)
  740. func newCompapiAsynctaskPager(opts []CompapiAsynctaskPaginateOption) (*CompapiAsynctaskPager, error) {
  741. pager := &CompapiAsynctaskPager{}
  742. for _, opt := range opts {
  743. opt(pager)
  744. }
  745. if pager.Order == nil {
  746. pager.Order = DefaultCompapiAsynctaskOrder
  747. }
  748. return pager, nil
  749. }
  750. func (p *CompapiAsynctaskPager) ApplyFilter(query *CompapiAsynctaskQuery) (*CompapiAsynctaskQuery, error) {
  751. if p.Filter != nil {
  752. return p.Filter(query)
  753. }
  754. return query, nil
  755. }
  756. // CompapiAsynctaskPageList is CompapiAsynctask PageList result.
  757. type CompapiAsynctaskPageList struct {
  758. List []*CompapiAsynctask `json:"list"`
  759. PageDetails *PageDetails `json:"pageDetails"`
  760. }
  761. func (ca *CompapiAsynctaskQuery) Page(
  762. ctx context.Context, pageNum uint64, pageSize uint64, opts ...CompapiAsynctaskPaginateOption,
  763. ) (*CompapiAsynctaskPageList, error) {
  764. pager, err := newCompapiAsynctaskPager(opts)
  765. if err != nil {
  766. return nil, err
  767. }
  768. if ca, err = pager.ApplyFilter(ca); err != nil {
  769. return nil, err
  770. }
  771. ret := &CompapiAsynctaskPageList{}
  772. ret.PageDetails = &PageDetails{
  773. Page: pageNum,
  774. Size: pageSize,
  775. }
  776. query := ca.Clone()
  777. query.ctx.Fields = nil
  778. count, err := query.Count(ctx)
  779. if err != nil {
  780. return nil, err
  781. }
  782. ret.PageDetails.Total = uint64(count)
  783. if pager.Order != nil {
  784. ca = ca.Order(pager.Order)
  785. } else {
  786. ca = ca.Order(DefaultCompapiAsynctaskOrder)
  787. }
  788. ca = ca.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  789. list, err := ca.All(ctx)
  790. if err != nil {
  791. return nil, err
  792. }
  793. ret.List = list
  794. return ret, nil
  795. }
  796. type ContactPager struct {
  797. Order contact.OrderOption
  798. Filter func(*ContactQuery) (*ContactQuery, error)
  799. }
  800. // ContactPaginateOption enables pagination customization.
  801. type ContactPaginateOption func(*ContactPager)
  802. // DefaultContactOrder is the default ordering of Contact.
  803. var DefaultContactOrder = Desc(contact.FieldID)
  804. func newContactPager(opts []ContactPaginateOption) (*ContactPager, error) {
  805. pager := &ContactPager{}
  806. for _, opt := range opts {
  807. opt(pager)
  808. }
  809. if pager.Order == nil {
  810. pager.Order = DefaultContactOrder
  811. }
  812. return pager, nil
  813. }
  814. func (p *ContactPager) ApplyFilter(query *ContactQuery) (*ContactQuery, error) {
  815. if p.Filter != nil {
  816. return p.Filter(query)
  817. }
  818. return query, nil
  819. }
  820. // ContactPageList is Contact PageList result.
  821. type ContactPageList struct {
  822. List []*Contact `json:"list"`
  823. PageDetails *PageDetails `json:"pageDetails"`
  824. }
  825. func (c *ContactQuery) Page(
  826. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ContactPaginateOption,
  827. ) (*ContactPageList, error) {
  828. pager, err := newContactPager(opts)
  829. if err != nil {
  830. return nil, err
  831. }
  832. if c, err = pager.ApplyFilter(c); err != nil {
  833. return nil, err
  834. }
  835. ret := &ContactPageList{}
  836. ret.PageDetails = &PageDetails{
  837. Page: pageNum,
  838. Size: pageSize,
  839. }
  840. query := c.Clone()
  841. query.ctx.Fields = nil
  842. count, err := query.Count(ctx)
  843. if err != nil {
  844. return nil, err
  845. }
  846. ret.PageDetails.Total = uint64(count)
  847. if pager.Order != nil {
  848. c = c.Order(pager.Order)
  849. } else {
  850. c = c.Order(DefaultContactOrder)
  851. }
  852. c = c.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  853. list, err := c.All(ctx)
  854. if err != nil {
  855. return nil, err
  856. }
  857. ret.List = list
  858. return ret, nil
  859. }
  860. type ContactFieldPager struct {
  861. Order contactfield.OrderOption
  862. Filter func(*ContactFieldQuery) (*ContactFieldQuery, error)
  863. }
  864. // ContactFieldPaginateOption enables pagination customization.
  865. type ContactFieldPaginateOption func(*ContactFieldPager)
  866. // DefaultContactFieldOrder is the default ordering of ContactField.
  867. var DefaultContactFieldOrder = Desc(contactfield.FieldID)
  868. func newContactFieldPager(opts []ContactFieldPaginateOption) (*ContactFieldPager, error) {
  869. pager := &ContactFieldPager{}
  870. for _, opt := range opts {
  871. opt(pager)
  872. }
  873. if pager.Order == nil {
  874. pager.Order = DefaultContactFieldOrder
  875. }
  876. return pager, nil
  877. }
  878. func (p *ContactFieldPager) ApplyFilter(query *ContactFieldQuery) (*ContactFieldQuery, error) {
  879. if p.Filter != nil {
  880. return p.Filter(query)
  881. }
  882. return query, nil
  883. }
  884. // ContactFieldPageList is ContactField PageList result.
  885. type ContactFieldPageList struct {
  886. List []*ContactField `json:"list"`
  887. PageDetails *PageDetails `json:"pageDetails"`
  888. }
  889. func (cf *ContactFieldQuery) Page(
  890. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ContactFieldPaginateOption,
  891. ) (*ContactFieldPageList, error) {
  892. pager, err := newContactFieldPager(opts)
  893. if err != nil {
  894. return nil, err
  895. }
  896. if cf, err = pager.ApplyFilter(cf); err != nil {
  897. return nil, err
  898. }
  899. ret := &ContactFieldPageList{}
  900. ret.PageDetails = &PageDetails{
  901. Page: pageNum,
  902. Size: pageSize,
  903. }
  904. query := cf.Clone()
  905. query.ctx.Fields = nil
  906. count, err := query.Count(ctx)
  907. if err != nil {
  908. return nil, err
  909. }
  910. ret.PageDetails.Total = uint64(count)
  911. if pager.Order != nil {
  912. cf = cf.Order(pager.Order)
  913. } else {
  914. cf = cf.Order(DefaultContactFieldOrder)
  915. }
  916. cf = cf.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  917. list, err := cf.All(ctx)
  918. if err != nil {
  919. return nil, err
  920. }
  921. ret.List = list
  922. return ret, nil
  923. }
  924. type ContactFieldTemplatePager struct {
  925. Order contactfieldtemplate.OrderOption
  926. Filter func(*ContactFieldTemplateQuery) (*ContactFieldTemplateQuery, error)
  927. }
  928. // ContactFieldTemplatePaginateOption enables pagination customization.
  929. type ContactFieldTemplatePaginateOption func(*ContactFieldTemplatePager)
  930. // DefaultContactFieldTemplateOrder is the default ordering of ContactFieldTemplate.
  931. var DefaultContactFieldTemplateOrder = Desc(contactfieldtemplate.FieldID)
  932. func newContactFieldTemplatePager(opts []ContactFieldTemplatePaginateOption) (*ContactFieldTemplatePager, error) {
  933. pager := &ContactFieldTemplatePager{}
  934. for _, opt := range opts {
  935. opt(pager)
  936. }
  937. if pager.Order == nil {
  938. pager.Order = DefaultContactFieldTemplateOrder
  939. }
  940. return pager, nil
  941. }
  942. func (p *ContactFieldTemplatePager) ApplyFilter(query *ContactFieldTemplateQuery) (*ContactFieldTemplateQuery, error) {
  943. if p.Filter != nil {
  944. return p.Filter(query)
  945. }
  946. return query, nil
  947. }
  948. // ContactFieldTemplatePageList is ContactFieldTemplate PageList result.
  949. type ContactFieldTemplatePageList struct {
  950. List []*ContactFieldTemplate `json:"list"`
  951. PageDetails *PageDetails `json:"pageDetails"`
  952. }
  953. func (cft *ContactFieldTemplateQuery) Page(
  954. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ContactFieldTemplatePaginateOption,
  955. ) (*ContactFieldTemplatePageList, error) {
  956. pager, err := newContactFieldTemplatePager(opts)
  957. if err != nil {
  958. return nil, err
  959. }
  960. if cft, err = pager.ApplyFilter(cft); err != nil {
  961. return nil, err
  962. }
  963. ret := &ContactFieldTemplatePageList{}
  964. ret.PageDetails = &PageDetails{
  965. Page: pageNum,
  966. Size: pageSize,
  967. }
  968. query := cft.Clone()
  969. query.ctx.Fields = nil
  970. count, err := query.Count(ctx)
  971. if err != nil {
  972. return nil, err
  973. }
  974. ret.PageDetails.Total = uint64(count)
  975. if pager.Order != nil {
  976. cft = cft.Order(pager.Order)
  977. } else {
  978. cft = cft.Order(DefaultContactFieldTemplateOrder)
  979. }
  980. cft = cft.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  981. list, err := cft.All(ctx)
  982. if err != nil {
  983. return nil, err
  984. }
  985. ret.List = list
  986. return ret, nil
  987. }
  988. type CreditBalancePager struct {
  989. Order creditbalance.OrderOption
  990. Filter func(*CreditBalanceQuery) (*CreditBalanceQuery, error)
  991. }
  992. // CreditBalancePaginateOption enables pagination customization.
  993. type CreditBalancePaginateOption func(*CreditBalancePager)
  994. // DefaultCreditBalanceOrder is the default ordering of CreditBalance.
  995. var DefaultCreditBalanceOrder = Desc(creditbalance.FieldID)
  996. func newCreditBalancePager(opts []CreditBalancePaginateOption) (*CreditBalancePager, error) {
  997. pager := &CreditBalancePager{}
  998. for _, opt := range opts {
  999. opt(pager)
  1000. }
  1001. if pager.Order == nil {
  1002. pager.Order = DefaultCreditBalanceOrder
  1003. }
  1004. return pager, nil
  1005. }
  1006. func (p *CreditBalancePager) ApplyFilter(query *CreditBalanceQuery) (*CreditBalanceQuery, error) {
  1007. if p.Filter != nil {
  1008. return p.Filter(query)
  1009. }
  1010. return query, nil
  1011. }
  1012. // CreditBalancePageList is CreditBalance PageList result.
  1013. type CreditBalancePageList struct {
  1014. List []*CreditBalance `json:"list"`
  1015. PageDetails *PageDetails `json:"pageDetails"`
  1016. }
  1017. func (cb *CreditBalanceQuery) Page(
  1018. ctx context.Context, pageNum uint64, pageSize uint64, opts ...CreditBalancePaginateOption,
  1019. ) (*CreditBalancePageList, error) {
  1020. pager, err := newCreditBalancePager(opts)
  1021. if err != nil {
  1022. return nil, err
  1023. }
  1024. if cb, err = pager.ApplyFilter(cb); err != nil {
  1025. return nil, err
  1026. }
  1027. ret := &CreditBalancePageList{}
  1028. ret.PageDetails = &PageDetails{
  1029. Page: pageNum,
  1030. Size: pageSize,
  1031. }
  1032. query := cb.Clone()
  1033. query.ctx.Fields = nil
  1034. count, err := query.Count(ctx)
  1035. if err != nil {
  1036. return nil, err
  1037. }
  1038. ret.PageDetails.Total = uint64(count)
  1039. if pager.Order != nil {
  1040. cb = cb.Order(pager.Order)
  1041. } else {
  1042. cb = cb.Order(DefaultCreditBalanceOrder)
  1043. }
  1044. cb = cb.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1045. list, err := cb.All(ctx)
  1046. if err != nil {
  1047. return nil, err
  1048. }
  1049. ret.List = list
  1050. return ret, nil
  1051. }
  1052. type CreditUsagePager struct {
  1053. Order creditusage.OrderOption
  1054. Filter func(*CreditUsageQuery) (*CreditUsageQuery, error)
  1055. }
  1056. // CreditUsagePaginateOption enables pagination customization.
  1057. type CreditUsagePaginateOption func(*CreditUsagePager)
  1058. // DefaultCreditUsageOrder is the default ordering of CreditUsage.
  1059. var DefaultCreditUsageOrder = Desc(creditusage.FieldID)
  1060. func newCreditUsagePager(opts []CreditUsagePaginateOption) (*CreditUsagePager, error) {
  1061. pager := &CreditUsagePager{}
  1062. for _, opt := range opts {
  1063. opt(pager)
  1064. }
  1065. if pager.Order == nil {
  1066. pager.Order = DefaultCreditUsageOrder
  1067. }
  1068. return pager, nil
  1069. }
  1070. func (p *CreditUsagePager) ApplyFilter(query *CreditUsageQuery) (*CreditUsageQuery, error) {
  1071. if p.Filter != nil {
  1072. return p.Filter(query)
  1073. }
  1074. return query, nil
  1075. }
  1076. // CreditUsagePageList is CreditUsage PageList result.
  1077. type CreditUsagePageList struct {
  1078. List []*CreditUsage `json:"list"`
  1079. PageDetails *PageDetails `json:"pageDetails"`
  1080. }
  1081. func (cu *CreditUsageQuery) Page(
  1082. ctx context.Context, pageNum uint64, pageSize uint64, opts ...CreditUsagePaginateOption,
  1083. ) (*CreditUsagePageList, error) {
  1084. pager, err := newCreditUsagePager(opts)
  1085. if err != nil {
  1086. return nil, err
  1087. }
  1088. if cu, err = pager.ApplyFilter(cu); err != nil {
  1089. return nil, err
  1090. }
  1091. ret := &CreditUsagePageList{}
  1092. ret.PageDetails = &PageDetails{
  1093. Page: pageNum,
  1094. Size: pageSize,
  1095. }
  1096. query := cu.Clone()
  1097. query.ctx.Fields = nil
  1098. count, err := query.Count(ctx)
  1099. if err != nil {
  1100. return nil, err
  1101. }
  1102. ret.PageDetails.Total = uint64(count)
  1103. if pager.Order != nil {
  1104. cu = cu.Order(pager.Order)
  1105. } else {
  1106. cu = cu.Order(DefaultCreditUsageOrder)
  1107. }
  1108. cu = cu.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1109. list, err := cu.All(ctx)
  1110. if err != nil {
  1111. return nil, err
  1112. }
  1113. ret.List = list
  1114. return ret, nil
  1115. }
  1116. type EmployeePager struct {
  1117. Order employee.OrderOption
  1118. Filter func(*EmployeeQuery) (*EmployeeQuery, error)
  1119. }
  1120. // EmployeePaginateOption enables pagination customization.
  1121. type EmployeePaginateOption func(*EmployeePager)
  1122. // DefaultEmployeeOrder is the default ordering of Employee.
  1123. var DefaultEmployeeOrder = Desc(employee.FieldID)
  1124. func newEmployeePager(opts []EmployeePaginateOption) (*EmployeePager, error) {
  1125. pager := &EmployeePager{}
  1126. for _, opt := range opts {
  1127. opt(pager)
  1128. }
  1129. if pager.Order == nil {
  1130. pager.Order = DefaultEmployeeOrder
  1131. }
  1132. return pager, nil
  1133. }
  1134. func (p *EmployeePager) ApplyFilter(query *EmployeeQuery) (*EmployeeQuery, error) {
  1135. if p.Filter != nil {
  1136. return p.Filter(query)
  1137. }
  1138. return query, nil
  1139. }
  1140. // EmployeePageList is Employee PageList result.
  1141. type EmployeePageList struct {
  1142. List []*Employee `json:"list"`
  1143. PageDetails *PageDetails `json:"pageDetails"`
  1144. }
  1145. func (e *EmployeeQuery) Page(
  1146. ctx context.Context, pageNum uint64, pageSize uint64, opts ...EmployeePaginateOption,
  1147. ) (*EmployeePageList, error) {
  1148. pager, err := newEmployeePager(opts)
  1149. if err != nil {
  1150. return nil, err
  1151. }
  1152. if e, err = pager.ApplyFilter(e); err != nil {
  1153. return nil, err
  1154. }
  1155. ret := &EmployeePageList{}
  1156. ret.PageDetails = &PageDetails{
  1157. Page: pageNum,
  1158. Size: pageSize,
  1159. }
  1160. query := e.Clone()
  1161. query.ctx.Fields = nil
  1162. count, err := query.Count(ctx)
  1163. if err != nil {
  1164. return nil, err
  1165. }
  1166. ret.PageDetails.Total = uint64(count)
  1167. if pager.Order != nil {
  1168. e = e.Order(pager.Order)
  1169. } else {
  1170. e = e.Order(DefaultEmployeeOrder)
  1171. }
  1172. e = e.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1173. list, err := e.All(ctx)
  1174. if err != nil {
  1175. return nil, err
  1176. }
  1177. ret.List = list
  1178. return ret, nil
  1179. }
  1180. type EmployeeConfigPager struct {
  1181. Order employeeconfig.OrderOption
  1182. Filter func(*EmployeeConfigQuery) (*EmployeeConfigQuery, error)
  1183. }
  1184. // EmployeeConfigPaginateOption enables pagination customization.
  1185. type EmployeeConfigPaginateOption func(*EmployeeConfigPager)
  1186. // DefaultEmployeeConfigOrder is the default ordering of EmployeeConfig.
  1187. var DefaultEmployeeConfigOrder = Desc(employeeconfig.FieldID)
  1188. func newEmployeeConfigPager(opts []EmployeeConfigPaginateOption) (*EmployeeConfigPager, error) {
  1189. pager := &EmployeeConfigPager{}
  1190. for _, opt := range opts {
  1191. opt(pager)
  1192. }
  1193. if pager.Order == nil {
  1194. pager.Order = DefaultEmployeeConfigOrder
  1195. }
  1196. return pager, nil
  1197. }
  1198. func (p *EmployeeConfigPager) ApplyFilter(query *EmployeeConfigQuery) (*EmployeeConfigQuery, error) {
  1199. if p.Filter != nil {
  1200. return p.Filter(query)
  1201. }
  1202. return query, nil
  1203. }
  1204. // EmployeeConfigPageList is EmployeeConfig PageList result.
  1205. type EmployeeConfigPageList struct {
  1206. List []*EmployeeConfig `json:"list"`
  1207. PageDetails *PageDetails `json:"pageDetails"`
  1208. }
  1209. func (ec *EmployeeConfigQuery) Page(
  1210. ctx context.Context, pageNum uint64, pageSize uint64, opts ...EmployeeConfigPaginateOption,
  1211. ) (*EmployeeConfigPageList, error) {
  1212. pager, err := newEmployeeConfigPager(opts)
  1213. if err != nil {
  1214. return nil, err
  1215. }
  1216. if ec, err = pager.ApplyFilter(ec); err != nil {
  1217. return nil, err
  1218. }
  1219. ret := &EmployeeConfigPageList{}
  1220. ret.PageDetails = &PageDetails{
  1221. Page: pageNum,
  1222. Size: pageSize,
  1223. }
  1224. query := ec.Clone()
  1225. query.ctx.Fields = nil
  1226. count, err := query.Count(ctx)
  1227. if err != nil {
  1228. return nil, err
  1229. }
  1230. ret.PageDetails.Total = uint64(count)
  1231. if pager.Order != nil {
  1232. ec = ec.Order(pager.Order)
  1233. } else {
  1234. ec = ec.Order(DefaultEmployeeConfigOrder)
  1235. }
  1236. ec = ec.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1237. list, err := ec.All(ctx)
  1238. if err != nil {
  1239. return nil, err
  1240. }
  1241. ret.List = list
  1242. return ret, nil
  1243. }
  1244. type LabelPager struct {
  1245. Order label.OrderOption
  1246. Filter func(*LabelQuery) (*LabelQuery, error)
  1247. }
  1248. // LabelPaginateOption enables pagination customization.
  1249. type LabelPaginateOption func(*LabelPager)
  1250. // DefaultLabelOrder is the default ordering of Label.
  1251. var DefaultLabelOrder = Desc(label.FieldID)
  1252. func newLabelPager(opts []LabelPaginateOption) (*LabelPager, error) {
  1253. pager := &LabelPager{}
  1254. for _, opt := range opts {
  1255. opt(pager)
  1256. }
  1257. if pager.Order == nil {
  1258. pager.Order = DefaultLabelOrder
  1259. }
  1260. return pager, nil
  1261. }
  1262. func (p *LabelPager) ApplyFilter(query *LabelQuery) (*LabelQuery, error) {
  1263. if p.Filter != nil {
  1264. return p.Filter(query)
  1265. }
  1266. return query, nil
  1267. }
  1268. // LabelPageList is Label PageList result.
  1269. type LabelPageList struct {
  1270. List []*Label `json:"list"`
  1271. PageDetails *PageDetails `json:"pageDetails"`
  1272. }
  1273. func (l *LabelQuery) Page(
  1274. ctx context.Context, pageNum uint64, pageSize uint64, opts ...LabelPaginateOption,
  1275. ) (*LabelPageList, error) {
  1276. pager, err := newLabelPager(opts)
  1277. if err != nil {
  1278. return nil, err
  1279. }
  1280. if l, err = pager.ApplyFilter(l); err != nil {
  1281. return nil, err
  1282. }
  1283. ret := &LabelPageList{}
  1284. ret.PageDetails = &PageDetails{
  1285. Page: pageNum,
  1286. Size: pageSize,
  1287. }
  1288. query := l.Clone()
  1289. query.ctx.Fields = nil
  1290. count, err := query.Count(ctx)
  1291. if err != nil {
  1292. return nil, err
  1293. }
  1294. ret.PageDetails.Total = uint64(count)
  1295. if pager.Order != nil {
  1296. l = l.Order(pager.Order)
  1297. } else {
  1298. l = l.Order(DefaultLabelOrder)
  1299. }
  1300. l = l.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1301. list, err := l.All(ctx)
  1302. if err != nil {
  1303. return nil, err
  1304. }
  1305. ret.List = list
  1306. return ret, nil
  1307. }
  1308. type LabelLogPager struct {
  1309. Order labellog.OrderOption
  1310. Filter func(*LabelLogQuery) (*LabelLogQuery, error)
  1311. }
  1312. // LabelLogPaginateOption enables pagination customization.
  1313. type LabelLogPaginateOption func(*LabelLogPager)
  1314. // DefaultLabelLogOrder is the default ordering of LabelLog.
  1315. var DefaultLabelLogOrder = Desc(labellog.FieldID)
  1316. func newLabelLogPager(opts []LabelLogPaginateOption) (*LabelLogPager, error) {
  1317. pager := &LabelLogPager{}
  1318. for _, opt := range opts {
  1319. opt(pager)
  1320. }
  1321. if pager.Order == nil {
  1322. pager.Order = DefaultLabelLogOrder
  1323. }
  1324. return pager, nil
  1325. }
  1326. func (p *LabelLogPager) ApplyFilter(query *LabelLogQuery) (*LabelLogQuery, error) {
  1327. if p.Filter != nil {
  1328. return p.Filter(query)
  1329. }
  1330. return query, nil
  1331. }
  1332. // LabelLogPageList is LabelLog PageList result.
  1333. type LabelLogPageList struct {
  1334. List []*LabelLog `json:"list"`
  1335. PageDetails *PageDetails `json:"pageDetails"`
  1336. }
  1337. func (ll *LabelLogQuery) Page(
  1338. ctx context.Context, pageNum uint64, pageSize uint64, opts ...LabelLogPaginateOption,
  1339. ) (*LabelLogPageList, error) {
  1340. pager, err := newLabelLogPager(opts)
  1341. if err != nil {
  1342. return nil, err
  1343. }
  1344. if ll, err = pager.ApplyFilter(ll); err != nil {
  1345. return nil, err
  1346. }
  1347. ret := &LabelLogPageList{}
  1348. ret.PageDetails = &PageDetails{
  1349. Page: pageNum,
  1350. Size: pageSize,
  1351. }
  1352. query := ll.Clone()
  1353. query.ctx.Fields = nil
  1354. count, err := query.Count(ctx)
  1355. if err != nil {
  1356. return nil, err
  1357. }
  1358. ret.PageDetails.Total = uint64(count)
  1359. if pager.Order != nil {
  1360. ll = ll.Order(pager.Order)
  1361. } else {
  1362. ll = ll.Order(DefaultLabelLogOrder)
  1363. }
  1364. ll = ll.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1365. list, err := ll.All(ctx)
  1366. if err != nil {
  1367. return nil, err
  1368. }
  1369. ret.List = list
  1370. return ret, nil
  1371. }
  1372. type LabelRelationshipPager struct {
  1373. Order labelrelationship.OrderOption
  1374. Filter func(*LabelRelationshipQuery) (*LabelRelationshipQuery, error)
  1375. }
  1376. // LabelRelationshipPaginateOption enables pagination customization.
  1377. type LabelRelationshipPaginateOption func(*LabelRelationshipPager)
  1378. // DefaultLabelRelationshipOrder is the default ordering of LabelRelationship.
  1379. var DefaultLabelRelationshipOrder = Desc(labelrelationship.FieldID)
  1380. func newLabelRelationshipPager(opts []LabelRelationshipPaginateOption) (*LabelRelationshipPager, error) {
  1381. pager := &LabelRelationshipPager{}
  1382. for _, opt := range opts {
  1383. opt(pager)
  1384. }
  1385. if pager.Order == nil {
  1386. pager.Order = DefaultLabelRelationshipOrder
  1387. }
  1388. return pager, nil
  1389. }
  1390. func (p *LabelRelationshipPager) ApplyFilter(query *LabelRelationshipQuery) (*LabelRelationshipQuery, error) {
  1391. if p.Filter != nil {
  1392. return p.Filter(query)
  1393. }
  1394. return query, nil
  1395. }
  1396. // LabelRelationshipPageList is LabelRelationship PageList result.
  1397. type LabelRelationshipPageList struct {
  1398. List []*LabelRelationship `json:"list"`
  1399. PageDetails *PageDetails `json:"pageDetails"`
  1400. }
  1401. func (lr *LabelRelationshipQuery) Page(
  1402. ctx context.Context, pageNum uint64, pageSize uint64, opts ...LabelRelationshipPaginateOption,
  1403. ) (*LabelRelationshipPageList, error) {
  1404. pager, err := newLabelRelationshipPager(opts)
  1405. if err != nil {
  1406. return nil, err
  1407. }
  1408. if lr, err = pager.ApplyFilter(lr); err != nil {
  1409. return nil, err
  1410. }
  1411. ret := &LabelRelationshipPageList{}
  1412. ret.PageDetails = &PageDetails{
  1413. Page: pageNum,
  1414. Size: pageSize,
  1415. }
  1416. query := lr.Clone()
  1417. query.ctx.Fields = nil
  1418. count, err := query.Count(ctx)
  1419. if err != nil {
  1420. return nil, err
  1421. }
  1422. ret.PageDetails.Total = uint64(count)
  1423. if pager.Order != nil {
  1424. lr = lr.Order(pager.Order)
  1425. } else {
  1426. lr = lr.Order(DefaultLabelRelationshipOrder)
  1427. }
  1428. lr = lr.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1429. list, err := lr.All(ctx)
  1430. if err != nil {
  1431. return nil, err
  1432. }
  1433. ret.List = list
  1434. return ret, nil
  1435. }
  1436. type LabelTaggingPager struct {
  1437. Order labeltagging.OrderOption
  1438. Filter func(*LabelTaggingQuery) (*LabelTaggingQuery, error)
  1439. }
  1440. // LabelTaggingPaginateOption enables pagination customization.
  1441. type LabelTaggingPaginateOption func(*LabelTaggingPager)
  1442. // DefaultLabelTaggingOrder is the default ordering of LabelTagging.
  1443. var DefaultLabelTaggingOrder = Desc(labeltagging.FieldID)
  1444. func newLabelTaggingPager(opts []LabelTaggingPaginateOption) (*LabelTaggingPager, error) {
  1445. pager := &LabelTaggingPager{}
  1446. for _, opt := range opts {
  1447. opt(pager)
  1448. }
  1449. if pager.Order == nil {
  1450. pager.Order = DefaultLabelTaggingOrder
  1451. }
  1452. return pager, nil
  1453. }
  1454. func (p *LabelTaggingPager) ApplyFilter(query *LabelTaggingQuery) (*LabelTaggingQuery, error) {
  1455. if p.Filter != nil {
  1456. return p.Filter(query)
  1457. }
  1458. return query, nil
  1459. }
  1460. // LabelTaggingPageList is LabelTagging PageList result.
  1461. type LabelTaggingPageList struct {
  1462. List []*LabelTagging `json:"list"`
  1463. PageDetails *PageDetails `json:"pageDetails"`
  1464. }
  1465. func (lt *LabelTaggingQuery) Page(
  1466. ctx context.Context, pageNum uint64, pageSize uint64, opts ...LabelTaggingPaginateOption,
  1467. ) (*LabelTaggingPageList, error) {
  1468. pager, err := newLabelTaggingPager(opts)
  1469. if err != nil {
  1470. return nil, err
  1471. }
  1472. if lt, err = pager.ApplyFilter(lt); err != nil {
  1473. return nil, err
  1474. }
  1475. ret := &LabelTaggingPageList{}
  1476. ret.PageDetails = &PageDetails{
  1477. Page: pageNum,
  1478. Size: pageSize,
  1479. }
  1480. query := lt.Clone()
  1481. query.ctx.Fields = nil
  1482. count, err := query.Count(ctx)
  1483. if err != nil {
  1484. return nil, err
  1485. }
  1486. ret.PageDetails.Total = uint64(count)
  1487. if pager.Order != nil {
  1488. lt = lt.Order(pager.Order)
  1489. } else {
  1490. lt = lt.Order(DefaultLabelTaggingOrder)
  1491. }
  1492. lt = lt.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1493. list, err := lt.All(ctx)
  1494. if err != nil {
  1495. return nil, err
  1496. }
  1497. ret.List = list
  1498. return ret, nil
  1499. }
  1500. type MessagePager struct {
  1501. Order message.OrderOption
  1502. Filter func(*MessageQuery) (*MessageQuery, error)
  1503. }
  1504. // MessagePaginateOption enables pagination customization.
  1505. type MessagePaginateOption func(*MessagePager)
  1506. // DefaultMessageOrder is the default ordering of Message.
  1507. var DefaultMessageOrder = Desc(message.FieldID)
  1508. func newMessagePager(opts []MessagePaginateOption) (*MessagePager, error) {
  1509. pager := &MessagePager{}
  1510. for _, opt := range opts {
  1511. opt(pager)
  1512. }
  1513. if pager.Order == nil {
  1514. pager.Order = DefaultMessageOrder
  1515. }
  1516. return pager, nil
  1517. }
  1518. func (p *MessagePager) ApplyFilter(query *MessageQuery) (*MessageQuery, error) {
  1519. if p.Filter != nil {
  1520. return p.Filter(query)
  1521. }
  1522. return query, nil
  1523. }
  1524. // MessagePageList is Message PageList result.
  1525. type MessagePageList struct {
  1526. List []*Message `json:"list"`
  1527. PageDetails *PageDetails `json:"pageDetails"`
  1528. }
  1529. func (m *MessageQuery) Page(
  1530. ctx context.Context, pageNum uint64, pageSize uint64, opts ...MessagePaginateOption,
  1531. ) (*MessagePageList, error) {
  1532. pager, err := newMessagePager(opts)
  1533. if err != nil {
  1534. return nil, err
  1535. }
  1536. if m, err = pager.ApplyFilter(m); err != nil {
  1537. return nil, err
  1538. }
  1539. ret := &MessagePageList{}
  1540. ret.PageDetails = &PageDetails{
  1541. Page: pageNum,
  1542. Size: pageSize,
  1543. }
  1544. query := m.Clone()
  1545. query.ctx.Fields = nil
  1546. count, err := query.Count(ctx)
  1547. if err != nil {
  1548. return nil, err
  1549. }
  1550. ret.PageDetails.Total = uint64(count)
  1551. if pager.Order != nil {
  1552. m = m.Order(pager.Order)
  1553. } else {
  1554. m = m.Order(DefaultMessageOrder)
  1555. }
  1556. m = m.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1557. list, err := m.All(ctx)
  1558. if err != nil {
  1559. return nil, err
  1560. }
  1561. ret.List = list
  1562. return ret, nil
  1563. }
  1564. type MessageRecordsPager struct {
  1565. Order messagerecords.OrderOption
  1566. Filter func(*MessageRecordsQuery) (*MessageRecordsQuery, error)
  1567. }
  1568. // MessageRecordsPaginateOption enables pagination customization.
  1569. type MessageRecordsPaginateOption func(*MessageRecordsPager)
  1570. // DefaultMessageRecordsOrder is the default ordering of MessageRecords.
  1571. var DefaultMessageRecordsOrder = Desc(messagerecords.FieldID)
  1572. func newMessageRecordsPager(opts []MessageRecordsPaginateOption) (*MessageRecordsPager, error) {
  1573. pager := &MessageRecordsPager{}
  1574. for _, opt := range opts {
  1575. opt(pager)
  1576. }
  1577. if pager.Order == nil {
  1578. pager.Order = DefaultMessageRecordsOrder
  1579. }
  1580. return pager, nil
  1581. }
  1582. func (p *MessageRecordsPager) ApplyFilter(query *MessageRecordsQuery) (*MessageRecordsQuery, error) {
  1583. if p.Filter != nil {
  1584. return p.Filter(query)
  1585. }
  1586. return query, nil
  1587. }
  1588. // MessageRecordsPageList is MessageRecords PageList result.
  1589. type MessageRecordsPageList struct {
  1590. List []*MessageRecords `json:"list"`
  1591. PageDetails *PageDetails `json:"pageDetails"`
  1592. }
  1593. func (mr *MessageRecordsQuery) Page(
  1594. ctx context.Context, pageNum uint64, pageSize uint64, opts ...MessageRecordsPaginateOption,
  1595. ) (*MessageRecordsPageList, error) {
  1596. pager, err := newMessageRecordsPager(opts)
  1597. if err != nil {
  1598. return nil, err
  1599. }
  1600. if mr, err = pager.ApplyFilter(mr); err != nil {
  1601. return nil, err
  1602. }
  1603. ret := &MessageRecordsPageList{}
  1604. ret.PageDetails = &PageDetails{
  1605. Page: pageNum,
  1606. Size: pageSize,
  1607. }
  1608. query := mr.Clone()
  1609. query.ctx.Fields = nil
  1610. count, err := query.Count(ctx)
  1611. if err != nil {
  1612. return nil, err
  1613. }
  1614. ret.PageDetails.Total = uint64(count)
  1615. if pager.Order != nil {
  1616. mr = mr.Order(pager.Order)
  1617. } else {
  1618. mr = mr.Order(DefaultMessageRecordsOrder)
  1619. }
  1620. mr = mr.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1621. list, err := mr.All(ctx)
  1622. if err != nil {
  1623. return nil, err
  1624. }
  1625. ret.List = list
  1626. return ret, nil
  1627. }
  1628. type MsgPager struct {
  1629. Order msg.OrderOption
  1630. Filter func(*MsgQuery) (*MsgQuery, error)
  1631. }
  1632. // MsgPaginateOption enables pagination customization.
  1633. type MsgPaginateOption func(*MsgPager)
  1634. // DefaultMsgOrder is the default ordering of Msg.
  1635. var DefaultMsgOrder = Desc(msg.FieldID)
  1636. func newMsgPager(opts []MsgPaginateOption) (*MsgPager, error) {
  1637. pager := &MsgPager{}
  1638. for _, opt := range opts {
  1639. opt(pager)
  1640. }
  1641. if pager.Order == nil {
  1642. pager.Order = DefaultMsgOrder
  1643. }
  1644. return pager, nil
  1645. }
  1646. func (p *MsgPager) ApplyFilter(query *MsgQuery) (*MsgQuery, error) {
  1647. if p.Filter != nil {
  1648. return p.Filter(query)
  1649. }
  1650. return query, nil
  1651. }
  1652. // MsgPageList is Msg PageList result.
  1653. type MsgPageList struct {
  1654. List []*Msg `json:"list"`
  1655. PageDetails *PageDetails `json:"pageDetails"`
  1656. }
  1657. func (m *MsgQuery) Page(
  1658. ctx context.Context, pageNum uint64, pageSize uint64, opts ...MsgPaginateOption,
  1659. ) (*MsgPageList, error) {
  1660. pager, err := newMsgPager(opts)
  1661. if err != nil {
  1662. return nil, err
  1663. }
  1664. if m, err = pager.ApplyFilter(m); err != nil {
  1665. return nil, err
  1666. }
  1667. ret := &MsgPageList{}
  1668. ret.PageDetails = &PageDetails{
  1669. Page: pageNum,
  1670. Size: pageSize,
  1671. }
  1672. query := m.Clone()
  1673. query.ctx.Fields = nil
  1674. count, err := query.Count(ctx)
  1675. if err != nil {
  1676. return nil, err
  1677. }
  1678. ret.PageDetails.Total = uint64(count)
  1679. if pager.Order != nil {
  1680. m = m.Order(pager.Order)
  1681. } else {
  1682. m = m.Order(DefaultMsgOrder)
  1683. }
  1684. m = m.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1685. list, err := m.All(ctx)
  1686. if err != nil {
  1687. return nil, err
  1688. }
  1689. ret.List = list
  1690. return ret, nil
  1691. }
  1692. type PayRechargePager struct {
  1693. Order payrecharge.OrderOption
  1694. Filter func(*PayRechargeQuery) (*PayRechargeQuery, error)
  1695. }
  1696. // PayRechargePaginateOption enables pagination customization.
  1697. type PayRechargePaginateOption func(*PayRechargePager)
  1698. // DefaultPayRechargeOrder is the default ordering of PayRecharge.
  1699. var DefaultPayRechargeOrder = Desc(payrecharge.FieldID)
  1700. func newPayRechargePager(opts []PayRechargePaginateOption) (*PayRechargePager, error) {
  1701. pager := &PayRechargePager{}
  1702. for _, opt := range opts {
  1703. opt(pager)
  1704. }
  1705. if pager.Order == nil {
  1706. pager.Order = DefaultPayRechargeOrder
  1707. }
  1708. return pager, nil
  1709. }
  1710. func (p *PayRechargePager) ApplyFilter(query *PayRechargeQuery) (*PayRechargeQuery, error) {
  1711. if p.Filter != nil {
  1712. return p.Filter(query)
  1713. }
  1714. return query, nil
  1715. }
  1716. // PayRechargePageList is PayRecharge PageList result.
  1717. type PayRechargePageList struct {
  1718. List []*PayRecharge `json:"list"`
  1719. PageDetails *PageDetails `json:"pageDetails"`
  1720. }
  1721. func (pr *PayRechargeQuery) Page(
  1722. ctx context.Context, pageNum uint64, pageSize uint64, opts ...PayRechargePaginateOption,
  1723. ) (*PayRechargePageList, error) {
  1724. pager, err := newPayRechargePager(opts)
  1725. if err != nil {
  1726. return nil, err
  1727. }
  1728. if pr, err = pager.ApplyFilter(pr); err != nil {
  1729. return nil, err
  1730. }
  1731. ret := &PayRechargePageList{}
  1732. ret.PageDetails = &PageDetails{
  1733. Page: pageNum,
  1734. Size: pageSize,
  1735. }
  1736. query := pr.Clone()
  1737. query.ctx.Fields = nil
  1738. count, err := query.Count(ctx)
  1739. if err != nil {
  1740. return nil, err
  1741. }
  1742. ret.PageDetails.Total = uint64(count)
  1743. if pager.Order != nil {
  1744. pr = pr.Order(pager.Order)
  1745. } else {
  1746. pr = pr.Order(DefaultPayRechargeOrder)
  1747. }
  1748. pr = pr.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1749. list, err := pr.All(ctx)
  1750. if err != nil {
  1751. return nil, err
  1752. }
  1753. ret.List = list
  1754. return ret, nil
  1755. }
  1756. type ServerPager struct {
  1757. Order server.OrderOption
  1758. Filter func(*ServerQuery) (*ServerQuery, error)
  1759. }
  1760. // ServerPaginateOption enables pagination customization.
  1761. type ServerPaginateOption func(*ServerPager)
  1762. // DefaultServerOrder is the default ordering of Server.
  1763. var DefaultServerOrder = Desc(server.FieldID)
  1764. func newServerPager(opts []ServerPaginateOption) (*ServerPager, error) {
  1765. pager := &ServerPager{}
  1766. for _, opt := range opts {
  1767. opt(pager)
  1768. }
  1769. if pager.Order == nil {
  1770. pager.Order = DefaultServerOrder
  1771. }
  1772. return pager, nil
  1773. }
  1774. func (p *ServerPager) ApplyFilter(query *ServerQuery) (*ServerQuery, error) {
  1775. if p.Filter != nil {
  1776. return p.Filter(query)
  1777. }
  1778. return query, nil
  1779. }
  1780. // ServerPageList is Server PageList result.
  1781. type ServerPageList struct {
  1782. List []*Server `json:"list"`
  1783. PageDetails *PageDetails `json:"pageDetails"`
  1784. }
  1785. func (s *ServerQuery) Page(
  1786. ctx context.Context, pageNum uint64, pageSize uint64, opts ...ServerPaginateOption,
  1787. ) (*ServerPageList, error) {
  1788. pager, err := newServerPager(opts)
  1789. if err != nil {
  1790. return nil, err
  1791. }
  1792. if s, err = pager.ApplyFilter(s); err != nil {
  1793. return nil, err
  1794. }
  1795. ret := &ServerPageList{}
  1796. ret.PageDetails = &PageDetails{
  1797. Page: pageNum,
  1798. Size: pageSize,
  1799. }
  1800. query := s.Clone()
  1801. query.ctx.Fields = nil
  1802. count, err := query.Count(ctx)
  1803. if err != nil {
  1804. return nil, err
  1805. }
  1806. ret.PageDetails.Total = uint64(count)
  1807. if pager.Order != nil {
  1808. s = s.Order(pager.Order)
  1809. } else {
  1810. s = s.Order(DefaultServerOrder)
  1811. }
  1812. s = s.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1813. list, err := s.All(ctx)
  1814. if err != nil {
  1815. return nil, err
  1816. }
  1817. ret.List = list
  1818. return ret, nil
  1819. }
  1820. type SopNodePager struct {
  1821. Order sopnode.OrderOption
  1822. Filter func(*SopNodeQuery) (*SopNodeQuery, error)
  1823. }
  1824. // SopNodePaginateOption enables pagination customization.
  1825. type SopNodePaginateOption func(*SopNodePager)
  1826. // DefaultSopNodeOrder is the default ordering of SopNode.
  1827. var DefaultSopNodeOrder = Desc(sopnode.FieldID)
  1828. func newSopNodePager(opts []SopNodePaginateOption) (*SopNodePager, error) {
  1829. pager := &SopNodePager{}
  1830. for _, opt := range opts {
  1831. opt(pager)
  1832. }
  1833. if pager.Order == nil {
  1834. pager.Order = DefaultSopNodeOrder
  1835. }
  1836. return pager, nil
  1837. }
  1838. func (p *SopNodePager) ApplyFilter(query *SopNodeQuery) (*SopNodeQuery, error) {
  1839. if p.Filter != nil {
  1840. return p.Filter(query)
  1841. }
  1842. return query, nil
  1843. }
  1844. // SopNodePageList is SopNode PageList result.
  1845. type SopNodePageList struct {
  1846. List []*SopNode `json:"list"`
  1847. PageDetails *PageDetails `json:"pageDetails"`
  1848. }
  1849. func (sn *SopNodeQuery) Page(
  1850. ctx context.Context, pageNum uint64, pageSize uint64, opts ...SopNodePaginateOption,
  1851. ) (*SopNodePageList, error) {
  1852. pager, err := newSopNodePager(opts)
  1853. if err != nil {
  1854. return nil, err
  1855. }
  1856. if sn, err = pager.ApplyFilter(sn); err != nil {
  1857. return nil, err
  1858. }
  1859. ret := &SopNodePageList{}
  1860. ret.PageDetails = &PageDetails{
  1861. Page: pageNum,
  1862. Size: pageSize,
  1863. }
  1864. query := sn.Clone()
  1865. query.ctx.Fields = nil
  1866. count, err := query.Count(ctx)
  1867. if err != nil {
  1868. return nil, err
  1869. }
  1870. ret.PageDetails.Total = uint64(count)
  1871. if pager.Order != nil {
  1872. sn = sn.Order(pager.Order)
  1873. } else {
  1874. sn = sn.Order(DefaultSopNodeOrder)
  1875. }
  1876. sn = sn.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1877. list, err := sn.All(ctx)
  1878. if err != nil {
  1879. return nil, err
  1880. }
  1881. ret.List = list
  1882. return ret, nil
  1883. }
  1884. type SopStagePager struct {
  1885. Order sopstage.OrderOption
  1886. Filter func(*SopStageQuery) (*SopStageQuery, error)
  1887. }
  1888. // SopStagePaginateOption enables pagination customization.
  1889. type SopStagePaginateOption func(*SopStagePager)
  1890. // DefaultSopStageOrder is the default ordering of SopStage.
  1891. var DefaultSopStageOrder = Desc(sopstage.FieldID)
  1892. func newSopStagePager(opts []SopStagePaginateOption) (*SopStagePager, error) {
  1893. pager := &SopStagePager{}
  1894. for _, opt := range opts {
  1895. opt(pager)
  1896. }
  1897. if pager.Order == nil {
  1898. pager.Order = DefaultSopStageOrder
  1899. }
  1900. return pager, nil
  1901. }
  1902. func (p *SopStagePager) ApplyFilter(query *SopStageQuery) (*SopStageQuery, error) {
  1903. if p.Filter != nil {
  1904. return p.Filter(query)
  1905. }
  1906. return query, nil
  1907. }
  1908. // SopStagePageList is SopStage PageList result.
  1909. type SopStagePageList struct {
  1910. List []*SopStage `json:"list"`
  1911. PageDetails *PageDetails `json:"pageDetails"`
  1912. }
  1913. func (ss *SopStageQuery) Page(
  1914. ctx context.Context, pageNum uint64, pageSize uint64, opts ...SopStagePaginateOption,
  1915. ) (*SopStagePageList, error) {
  1916. pager, err := newSopStagePager(opts)
  1917. if err != nil {
  1918. return nil, err
  1919. }
  1920. if ss, err = pager.ApplyFilter(ss); err != nil {
  1921. return nil, err
  1922. }
  1923. ret := &SopStagePageList{}
  1924. ret.PageDetails = &PageDetails{
  1925. Page: pageNum,
  1926. Size: pageSize,
  1927. }
  1928. query := ss.Clone()
  1929. query.ctx.Fields = nil
  1930. count, err := query.Count(ctx)
  1931. if err != nil {
  1932. return nil, err
  1933. }
  1934. ret.PageDetails.Total = uint64(count)
  1935. if pager.Order != nil {
  1936. ss = ss.Order(pager.Order)
  1937. } else {
  1938. ss = ss.Order(DefaultSopStageOrder)
  1939. }
  1940. ss = ss.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  1941. list, err := ss.All(ctx)
  1942. if err != nil {
  1943. return nil, err
  1944. }
  1945. ret.List = list
  1946. return ret, nil
  1947. }
  1948. type SopTaskPager struct {
  1949. Order soptask.OrderOption
  1950. Filter func(*SopTaskQuery) (*SopTaskQuery, error)
  1951. }
  1952. // SopTaskPaginateOption enables pagination customization.
  1953. type SopTaskPaginateOption func(*SopTaskPager)
  1954. // DefaultSopTaskOrder is the default ordering of SopTask.
  1955. var DefaultSopTaskOrder = Desc(soptask.FieldID)
  1956. func newSopTaskPager(opts []SopTaskPaginateOption) (*SopTaskPager, error) {
  1957. pager := &SopTaskPager{}
  1958. for _, opt := range opts {
  1959. opt(pager)
  1960. }
  1961. if pager.Order == nil {
  1962. pager.Order = DefaultSopTaskOrder
  1963. }
  1964. return pager, nil
  1965. }
  1966. func (p *SopTaskPager) ApplyFilter(query *SopTaskQuery) (*SopTaskQuery, error) {
  1967. if p.Filter != nil {
  1968. return p.Filter(query)
  1969. }
  1970. return query, nil
  1971. }
  1972. // SopTaskPageList is SopTask PageList result.
  1973. type SopTaskPageList struct {
  1974. List []*SopTask `json:"list"`
  1975. PageDetails *PageDetails `json:"pageDetails"`
  1976. }
  1977. func (st *SopTaskQuery) Page(
  1978. ctx context.Context, pageNum uint64, pageSize uint64, opts ...SopTaskPaginateOption,
  1979. ) (*SopTaskPageList, error) {
  1980. pager, err := newSopTaskPager(opts)
  1981. if err != nil {
  1982. return nil, err
  1983. }
  1984. if st, err = pager.ApplyFilter(st); err != nil {
  1985. return nil, err
  1986. }
  1987. ret := &SopTaskPageList{}
  1988. ret.PageDetails = &PageDetails{
  1989. Page: pageNum,
  1990. Size: pageSize,
  1991. }
  1992. query := st.Clone()
  1993. query.ctx.Fields = nil
  1994. count, err := query.Count(ctx)
  1995. if err != nil {
  1996. return nil, err
  1997. }
  1998. ret.PageDetails.Total = uint64(count)
  1999. if pager.Order != nil {
  2000. st = st.Order(pager.Order)
  2001. } else {
  2002. st = st.Order(DefaultSopTaskOrder)
  2003. }
  2004. st = st.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2005. list, err := st.All(ctx)
  2006. if err != nil {
  2007. return nil, err
  2008. }
  2009. ret.List = list
  2010. return ret, nil
  2011. }
  2012. type TokenPager struct {
  2013. Order token.OrderOption
  2014. Filter func(*TokenQuery) (*TokenQuery, error)
  2015. }
  2016. // TokenPaginateOption enables pagination customization.
  2017. type TokenPaginateOption func(*TokenPager)
  2018. // DefaultTokenOrder is the default ordering of Token.
  2019. var DefaultTokenOrder = Desc(token.FieldID)
  2020. func newTokenPager(opts []TokenPaginateOption) (*TokenPager, error) {
  2021. pager := &TokenPager{}
  2022. for _, opt := range opts {
  2023. opt(pager)
  2024. }
  2025. if pager.Order == nil {
  2026. pager.Order = DefaultTokenOrder
  2027. }
  2028. return pager, nil
  2029. }
  2030. func (p *TokenPager) ApplyFilter(query *TokenQuery) (*TokenQuery, error) {
  2031. if p.Filter != nil {
  2032. return p.Filter(query)
  2033. }
  2034. return query, nil
  2035. }
  2036. // TokenPageList is Token PageList result.
  2037. type TokenPageList struct {
  2038. List []*Token `json:"list"`
  2039. PageDetails *PageDetails `json:"pageDetails"`
  2040. }
  2041. func (t *TokenQuery) Page(
  2042. ctx context.Context, pageNum uint64, pageSize uint64, opts ...TokenPaginateOption,
  2043. ) (*TokenPageList, error) {
  2044. pager, err := newTokenPager(opts)
  2045. if err != nil {
  2046. return nil, err
  2047. }
  2048. if t, err = pager.ApplyFilter(t); err != nil {
  2049. return nil, err
  2050. }
  2051. ret := &TokenPageList{}
  2052. ret.PageDetails = &PageDetails{
  2053. Page: pageNum,
  2054. Size: pageSize,
  2055. }
  2056. query := t.Clone()
  2057. query.ctx.Fields = nil
  2058. count, err := query.Count(ctx)
  2059. if err != nil {
  2060. return nil, err
  2061. }
  2062. ret.PageDetails.Total = uint64(count)
  2063. if pager.Order != nil {
  2064. t = t.Order(pager.Order)
  2065. } else {
  2066. t = t.Order(DefaultTokenOrder)
  2067. }
  2068. t = t.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2069. list, err := t.All(ctx)
  2070. if err != nil {
  2071. return nil, err
  2072. }
  2073. ret.List = list
  2074. return ret, nil
  2075. }
  2076. type TutorialPager struct {
  2077. Order tutorial.OrderOption
  2078. Filter func(*TutorialQuery) (*TutorialQuery, error)
  2079. }
  2080. // TutorialPaginateOption enables pagination customization.
  2081. type TutorialPaginateOption func(*TutorialPager)
  2082. // DefaultTutorialOrder is the default ordering of Tutorial.
  2083. var DefaultTutorialOrder = Desc(tutorial.FieldID)
  2084. func newTutorialPager(opts []TutorialPaginateOption) (*TutorialPager, error) {
  2085. pager := &TutorialPager{}
  2086. for _, opt := range opts {
  2087. opt(pager)
  2088. }
  2089. if pager.Order == nil {
  2090. pager.Order = DefaultTutorialOrder
  2091. }
  2092. return pager, nil
  2093. }
  2094. func (p *TutorialPager) ApplyFilter(query *TutorialQuery) (*TutorialQuery, error) {
  2095. if p.Filter != nil {
  2096. return p.Filter(query)
  2097. }
  2098. return query, nil
  2099. }
  2100. // TutorialPageList is Tutorial PageList result.
  2101. type TutorialPageList struct {
  2102. List []*Tutorial `json:"list"`
  2103. PageDetails *PageDetails `json:"pageDetails"`
  2104. }
  2105. func (t *TutorialQuery) Page(
  2106. ctx context.Context, pageNum uint64, pageSize uint64, opts ...TutorialPaginateOption,
  2107. ) (*TutorialPageList, error) {
  2108. pager, err := newTutorialPager(opts)
  2109. if err != nil {
  2110. return nil, err
  2111. }
  2112. if t, err = pager.ApplyFilter(t); err != nil {
  2113. return nil, err
  2114. }
  2115. ret := &TutorialPageList{}
  2116. ret.PageDetails = &PageDetails{
  2117. Page: pageNum,
  2118. Size: pageSize,
  2119. }
  2120. query := t.Clone()
  2121. query.ctx.Fields = nil
  2122. count, err := query.Count(ctx)
  2123. if err != nil {
  2124. return nil, err
  2125. }
  2126. ret.PageDetails.Total = uint64(count)
  2127. if pager.Order != nil {
  2128. t = t.Order(pager.Order)
  2129. } else {
  2130. t = t.Order(DefaultTutorialOrder)
  2131. }
  2132. t = t.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2133. list, err := t.All(ctx)
  2134. if err != nil {
  2135. return nil, err
  2136. }
  2137. ret.List = list
  2138. return ret, nil
  2139. }
  2140. type UsageDetailPager struct {
  2141. Order usagedetail.OrderOption
  2142. Filter func(*UsageDetailQuery) (*UsageDetailQuery, error)
  2143. }
  2144. // UsageDetailPaginateOption enables pagination customization.
  2145. type UsageDetailPaginateOption func(*UsageDetailPager)
  2146. // DefaultUsageDetailOrder is the default ordering of UsageDetail.
  2147. var DefaultUsageDetailOrder = Desc(usagedetail.FieldID)
  2148. func newUsageDetailPager(opts []UsageDetailPaginateOption) (*UsageDetailPager, error) {
  2149. pager := &UsageDetailPager{}
  2150. for _, opt := range opts {
  2151. opt(pager)
  2152. }
  2153. if pager.Order == nil {
  2154. pager.Order = DefaultUsageDetailOrder
  2155. }
  2156. return pager, nil
  2157. }
  2158. func (p *UsageDetailPager) ApplyFilter(query *UsageDetailQuery) (*UsageDetailQuery, error) {
  2159. if p.Filter != nil {
  2160. return p.Filter(query)
  2161. }
  2162. return query, nil
  2163. }
  2164. // UsageDetailPageList is UsageDetail PageList result.
  2165. type UsageDetailPageList struct {
  2166. List []*UsageDetail `json:"list"`
  2167. PageDetails *PageDetails `json:"pageDetails"`
  2168. }
  2169. func (ud *UsageDetailQuery) Page(
  2170. ctx context.Context, pageNum uint64, pageSize uint64, opts ...UsageDetailPaginateOption,
  2171. ) (*UsageDetailPageList, error) {
  2172. pager, err := newUsageDetailPager(opts)
  2173. if err != nil {
  2174. return nil, err
  2175. }
  2176. if ud, err = pager.ApplyFilter(ud); err != nil {
  2177. return nil, err
  2178. }
  2179. ret := &UsageDetailPageList{}
  2180. ret.PageDetails = &PageDetails{
  2181. Page: pageNum,
  2182. Size: pageSize,
  2183. }
  2184. query := ud.Clone()
  2185. query.ctx.Fields = nil
  2186. count, err := query.Count(ctx)
  2187. if err != nil {
  2188. return nil, err
  2189. }
  2190. ret.PageDetails.Total = uint64(count)
  2191. if pager.Order != nil {
  2192. ud = ud.Order(pager.Order)
  2193. } else {
  2194. ud = ud.Order(DefaultUsageDetailOrder)
  2195. }
  2196. ud = ud.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2197. list, err := ud.All(ctx)
  2198. if err != nil {
  2199. return nil, err
  2200. }
  2201. ret.List = list
  2202. return ret, nil
  2203. }
  2204. type UsageStatisticDayPager struct {
  2205. Order usagestatisticday.OrderOption
  2206. Filter func(*UsageStatisticDayQuery) (*UsageStatisticDayQuery, error)
  2207. }
  2208. // UsageStatisticDayPaginateOption enables pagination customization.
  2209. type UsageStatisticDayPaginateOption func(*UsageStatisticDayPager)
  2210. // DefaultUsageStatisticDayOrder is the default ordering of UsageStatisticDay.
  2211. var DefaultUsageStatisticDayOrder = Desc(usagestatisticday.FieldID)
  2212. func newUsageStatisticDayPager(opts []UsageStatisticDayPaginateOption) (*UsageStatisticDayPager, error) {
  2213. pager := &UsageStatisticDayPager{}
  2214. for _, opt := range opts {
  2215. opt(pager)
  2216. }
  2217. if pager.Order == nil {
  2218. pager.Order = DefaultUsageStatisticDayOrder
  2219. }
  2220. return pager, nil
  2221. }
  2222. func (p *UsageStatisticDayPager) ApplyFilter(query *UsageStatisticDayQuery) (*UsageStatisticDayQuery, error) {
  2223. if p.Filter != nil {
  2224. return p.Filter(query)
  2225. }
  2226. return query, nil
  2227. }
  2228. // UsageStatisticDayPageList is UsageStatisticDay PageList result.
  2229. type UsageStatisticDayPageList struct {
  2230. List []*UsageStatisticDay `json:"list"`
  2231. PageDetails *PageDetails `json:"pageDetails"`
  2232. }
  2233. func (usd *UsageStatisticDayQuery) Page(
  2234. ctx context.Context, pageNum uint64, pageSize uint64, opts ...UsageStatisticDayPaginateOption,
  2235. ) (*UsageStatisticDayPageList, error) {
  2236. pager, err := newUsageStatisticDayPager(opts)
  2237. if err != nil {
  2238. return nil, err
  2239. }
  2240. if usd, err = pager.ApplyFilter(usd); err != nil {
  2241. return nil, err
  2242. }
  2243. ret := &UsageStatisticDayPageList{}
  2244. ret.PageDetails = &PageDetails{
  2245. Page: pageNum,
  2246. Size: pageSize,
  2247. }
  2248. query := usd.Clone()
  2249. query.ctx.Fields = nil
  2250. count, err := query.Count(ctx)
  2251. if err != nil {
  2252. return nil, err
  2253. }
  2254. ret.PageDetails.Total = uint64(count)
  2255. if pager.Order != nil {
  2256. usd = usd.Order(pager.Order)
  2257. } else {
  2258. usd = usd.Order(DefaultUsageStatisticDayOrder)
  2259. }
  2260. usd = usd.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2261. list, err := usd.All(ctx)
  2262. if err != nil {
  2263. return nil, err
  2264. }
  2265. ret.List = list
  2266. return ret, nil
  2267. }
  2268. type UsageStatisticHourPager struct {
  2269. Order usagestatistichour.OrderOption
  2270. Filter func(*UsageStatisticHourQuery) (*UsageStatisticHourQuery, error)
  2271. }
  2272. // UsageStatisticHourPaginateOption enables pagination customization.
  2273. type UsageStatisticHourPaginateOption func(*UsageStatisticHourPager)
  2274. // DefaultUsageStatisticHourOrder is the default ordering of UsageStatisticHour.
  2275. var DefaultUsageStatisticHourOrder = Desc(usagestatistichour.FieldID)
  2276. func newUsageStatisticHourPager(opts []UsageStatisticHourPaginateOption) (*UsageStatisticHourPager, error) {
  2277. pager := &UsageStatisticHourPager{}
  2278. for _, opt := range opts {
  2279. opt(pager)
  2280. }
  2281. if pager.Order == nil {
  2282. pager.Order = DefaultUsageStatisticHourOrder
  2283. }
  2284. return pager, nil
  2285. }
  2286. func (p *UsageStatisticHourPager) ApplyFilter(query *UsageStatisticHourQuery) (*UsageStatisticHourQuery, error) {
  2287. if p.Filter != nil {
  2288. return p.Filter(query)
  2289. }
  2290. return query, nil
  2291. }
  2292. // UsageStatisticHourPageList is UsageStatisticHour PageList result.
  2293. type UsageStatisticHourPageList struct {
  2294. List []*UsageStatisticHour `json:"list"`
  2295. PageDetails *PageDetails `json:"pageDetails"`
  2296. }
  2297. func (ush *UsageStatisticHourQuery) Page(
  2298. ctx context.Context, pageNum uint64, pageSize uint64, opts ...UsageStatisticHourPaginateOption,
  2299. ) (*UsageStatisticHourPageList, error) {
  2300. pager, err := newUsageStatisticHourPager(opts)
  2301. if err != nil {
  2302. return nil, err
  2303. }
  2304. if ush, err = pager.ApplyFilter(ush); err != nil {
  2305. return nil, err
  2306. }
  2307. ret := &UsageStatisticHourPageList{}
  2308. ret.PageDetails = &PageDetails{
  2309. Page: pageNum,
  2310. Size: pageSize,
  2311. }
  2312. query := ush.Clone()
  2313. query.ctx.Fields = nil
  2314. count, err := query.Count(ctx)
  2315. if err != nil {
  2316. return nil, err
  2317. }
  2318. ret.PageDetails.Total = uint64(count)
  2319. if pager.Order != nil {
  2320. ush = ush.Order(pager.Order)
  2321. } else {
  2322. ush = ush.Order(DefaultUsageStatisticHourOrder)
  2323. }
  2324. ush = ush.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2325. list, err := ush.All(ctx)
  2326. if err != nil {
  2327. return nil, err
  2328. }
  2329. ret.List = list
  2330. return ret, nil
  2331. }
  2332. type UsageStatisticMonthPager struct {
  2333. Order usagestatisticmonth.OrderOption
  2334. Filter func(*UsageStatisticMonthQuery) (*UsageStatisticMonthQuery, error)
  2335. }
  2336. // UsageStatisticMonthPaginateOption enables pagination customization.
  2337. type UsageStatisticMonthPaginateOption func(*UsageStatisticMonthPager)
  2338. // DefaultUsageStatisticMonthOrder is the default ordering of UsageStatisticMonth.
  2339. var DefaultUsageStatisticMonthOrder = Desc(usagestatisticmonth.FieldID)
  2340. func newUsageStatisticMonthPager(opts []UsageStatisticMonthPaginateOption) (*UsageStatisticMonthPager, error) {
  2341. pager := &UsageStatisticMonthPager{}
  2342. for _, opt := range opts {
  2343. opt(pager)
  2344. }
  2345. if pager.Order == nil {
  2346. pager.Order = DefaultUsageStatisticMonthOrder
  2347. }
  2348. return pager, nil
  2349. }
  2350. func (p *UsageStatisticMonthPager) ApplyFilter(query *UsageStatisticMonthQuery) (*UsageStatisticMonthQuery, error) {
  2351. if p.Filter != nil {
  2352. return p.Filter(query)
  2353. }
  2354. return query, nil
  2355. }
  2356. // UsageStatisticMonthPageList is UsageStatisticMonth PageList result.
  2357. type UsageStatisticMonthPageList struct {
  2358. List []*UsageStatisticMonth `json:"list"`
  2359. PageDetails *PageDetails `json:"pageDetails"`
  2360. }
  2361. func (usm *UsageStatisticMonthQuery) Page(
  2362. ctx context.Context, pageNum uint64, pageSize uint64, opts ...UsageStatisticMonthPaginateOption,
  2363. ) (*UsageStatisticMonthPageList, error) {
  2364. pager, err := newUsageStatisticMonthPager(opts)
  2365. if err != nil {
  2366. return nil, err
  2367. }
  2368. if usm, err = pager.ApplyFilter(usm); err != nil {
  2369. return nil, err
  2370. }
  2371. ret := &UsageStatisticMonthPageList{}
  2372. ret.PageDetails = &PageDetails{
  2373. Page: pageNum,
  2374. Size: pageSize,
  2375. }
  2376. query := usm.Clone()
  2377. query.ctx.Fields = nil
  2378. count, err := query.Count(ctx)
  2379. if err != nil {
  2380. return nil, err
  2381. }
  2382. ret.PageDetails.Total = uint64(count)
  2383. if pager.Order != nil {
  2384. usm = usm.Order(pager.Order)
  2385. } else {
  2386. usm = usm.Order(DefaultUsageStatisticMonthOrder)
  2387. }
  2388. usm = usm.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2389. list, err := usm.All(ctx)
  2390. if err != nil {
  2391. return nil, err
  2392. }
  2393. ret.List = list
  2394. return ret, nil
  2395. }
  2396. type UsageTotalPager struct {
  2397. Order usagetotal.OrderOption
  2398. Filter func(*UsageTotalQuery) (*UsageTotalQuery, error)
  2399. }
  2400. // UsageTotalPaginateOption enables pagination customization.
  2401. type UsageTotalPaginateOption func(*UsageTotalPager)
  2402. // DefaultUsageTotalOrder is the default ordering of UsageTotal.
  2403. var DefaultUsageTotalOrder = Desc(usagetotal.FieldID)
  2404. func newUsageTotalPager(opts []UsageTotalPaginateOption) (*UsageTotalPager, error) {
  2405. pager := &UsageTotalPager{}
  2406. for _, opt := range opts {
  2407. opt(pager)
  2408. }
  2409. if pager.Order == nil {
  2410. pager.Order = DefaultUsageTotalOrder
  2411. }
  2412. return pager, nil
  2413. }
  2414. func (p *UsageTotalPager) ApplyFilter(query *UsageTotalQuery) (*UsageTotalQuery, error) {
  2415. if p.Filter != nil {
  2416. return p.Filter(query)
  2417. }
  2418. return query, nil
  2419. }
  2420. // UsageTotalPageList is UsageTotal PageList result.
  2421. type UsageTotalPageList struct {
  2422. List []*UsageTotal `json:"list"`
  2423. PageDetails *PageDetails `json:"pageDetails"`
  2424. }
  2425. func (ut *UsageTotalQuery) Page(
  2426. ctx context.Context, pageNum uint64, pageSize uint64, opts ...UsageTotalPaginateOption,
  2427. ) (*UsageTotalPageList, error) {
  2428. pager, err := newUsageTotalPager(opts)
  2429. if err != nil {
  2430. return nil, err
  2431. }
  2432. if ut, err = pager.ApplyFilter(ut); err != nil {
  2433. return nil, err
  2434. }
  2435. ret := &UsageTotalPageList{}
  2436. ret.PageDetails = &PageDetails{
  2437. Page: pageNum,
  2438. Size: pageSize,
  2439. }
  2440. query := ut.Clone()
  2441. query.ctx.Fields = nil
  2442. count, err := query.Count(ctx)
  2443. if err != nil {
  2444. return nil, err
  2445. }
  2446. ret.PageDetails.Total = uint64(count)
  2447. if pager.Order != nil {
  2448. ut = ut.Order(pager.Order)
  2449. } else {
  2450. ut = ut.Order(DefaultUsageTotalOrder)
  2451. }
  2452. ut = ut.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2453. list, err := ut.All(ctx)
  2454. if err != nil {
  2455. return nil, err
  2456. }
  2457. ret.List = list
  2458. return ret, nil
  2459. }
  2460. type WhatsappPager struct {
  2461. Order whatsapp.OrderOption
  2462. Filter func(*WhatsappQuery) (*WhatsappQuery, error)
  2463. }
  2464. // WhatsappPaginateOption enables pagination customization.
  2465. type WhatsappPaginateOption func(*WhatsappPager)
  2466. // DefaultWhatsappOrder is the default ordering of Whatsapp.
  2467. var DefaultWhatsappOrder = Desc(whatsapp.FieldID)
  2468. func newWhatsappPager(opts []WhatsappPaginateOption) (*WhatsappPager, error) {
  2469. pager := &WhatsappPager{}
  2470. for _, opt := range opts {
  2471. opt(pager)
  2472. }
  2473. if pager.Order == nil {
  2474. pager.Order = DefaultWhatsappOrder
  2475. }
  2476. return pager, nil
  2477. }
  2478. func (p *WhatsappPager) ApplyFilter(query *WhatsappQuery) (*WhatsappQuery, error) {
  2479. if p.Filter != nil {
  2480. return p.Filter(query)
  2481. }
  2482. return query, nil
  2483. }
  2484. // WhatsappPageList is Whatsapp PageList result.
  2485. type WhatsappPageList struct {
  2486. List []*Whatsapp `json:"list"`
  2487. PageDetails *PageDetails `json:"pageDetails"`
  2488. }
  2489. func (w *WhatsappQuery) Page(
  2490. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WhatsappPaginateOption,
  2491. ) (*WhatsappPageList, error) {
  2492. pager, err := newWhatsappPager(opts)
  2493. if err != nil {
  2494. return nil, err
  2495. }
  2496. if w, err = pager.ApplyFilter(w); err != nil {
  2497. return nil, err
  2498. }
  2499. ret := &WhatsappPageList{}
  2500. ret.PageDetails = &PageDetails{
  2501. Page: pageNum,
  2502. Size: pageSize,
  2503. }
  2504. query := w.Clone()
  2505. query.ctx.Fields = nil
  2506. count, err := query.Count(ctx)
  2507. if err != nil {
  2508. return nil, err
  2509. }
  2510. ret.PageDetails.Total = uint64(count)
  2511. if pager.Order != nil {
  2512. w = w.Order(pager.Order)
  2513. } else {
  2514. w = w.Order(DefaultWhatsappOrder)
  2515. }
  2516. w = w.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2517. list, err := w.All(ctx)
  2518. if err != nil {
  2519. return nil, err
  2520. }
  2521. ret.List = list
  2522. return ret, nil
  2523. }
  2524. type WhatsappChannelPager struct {
  2525. Order whatsappchannel.OrderOption
  2526. Filter func(*WhatsappChannelQuery) (*WhatsappChannelQuery, error)
  2527. }
  2528. // WhatsappChannelPaginateOption enables pagination customization.
  2529. type WhatsappChannelPaginateOption func(*WhatsappChannelPager)
  2530. // DefaultWhatsappChannelOrder is the default ordering of WhatsappChannel.
  2531. var DefaultWhatsappChannelOrder = Desc(whatsappchannel.FieldID)
  2532. func newWhatsappChannelPager(opts []WhatsappChannelPaginateOption) (*WhatsappChannelPager, error) {
  2533. pager := &WhatsappChannelPager{}
  2534. for _, opt := range opts {
  2535. opt(pager)
  2536. }
  2537. if pager.Order == nil {
  2538. pager.Order = DefaultWhatsappChannelOrder
  2539. }
  2540. return pager, nil
  2541. }
  2542. func (p *WhatsappChannelPager) ApplyFilter(query *WhatsappChannelQuery) (*WhatsappChannelQuery, error) {
  2543. if p.Filter != nil {
  2544. return p.Filter(query)
  2545. }
  2546. return query, nil
  2547. }
  2548. // WhatsappChannelPageList is WhatsappChannel PageList result.
  2549. type WhatsappChannelPageList struct {
  2550. List []*WhatsappChannel `json:"list"`
  2551. PageDetails *PageDetails `json:"pageDetails"`
  2552. }
  2553. func (wc *WhatsappChannelQuery) Page(
  2554. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WhatsappChannelPaginateOption,
  2555. ) (*WhatsappChannelPageList, error) {
  2556. pager, err := newWhatsappChannelPager(opts)
  2557. if err != nil {
  2558. return nil, err
  2559. }
  2560. if wc, err = pager.ApplyFilter(wc); err != nil {
  2561. return nil, err
  2562. }
  2563. ret := &WhatsappChannelPageList{}
  2564. ret.PageDetails = &PageDetails{
  2565. Page: pageNum,
  2566. Size: pageSize,
  2567. }
  2568. query := wc.Clone()
  2569. query.ctx.Fields = nil
  2570. count, err := query.Count(ctx)
  2571. if err != nil {
  2572. return nil, err
  2573. }
  2574. ret.PageDetails.Total = uint64(count)
  2575. if pager.Order != nil {
  2576. wc = wc.Order(pager.Order)
  2577. } else {
  2578. wc = wc.Order(DefaultWhatsappChannelOrder)
  2579. }
  2580. wc = wc.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2581. list, err := wc.All(ctx)
  2582. if err != nil {
  2583. return nil, err
  2584. }
  2585. ret.List = list
  2586. return ret, nil
  2587. }
  2588. type WorkExperiencePager struct {
  2589. Order workexperience.OrderOption
  2590. Filter func(*WorkExperienceQuery) (*WorkExperienceQuery, error)
  2591. }
  2592. // WorkExperiencePaginateOption enables pagination customization.
  2593. type WorkExperiencePaginateOption func(*WorkExperiencePager)
  2594. // DefaultWorkExperienceOrder is the default ordering of WorkExperience.
  2595. var DefaultWorkExperienceOrder = Desc(workexperience.FieldID)
  2596. func newWorkExperiencePager(opts []WorkExperiencePaginateOption) (*WorkExperiencePager, error) {
  2597. pager := &WorkExperiencePager{}
  2598. for _, opt := range opts {
  2599. opt(pager)
  2600. }
  2601. if pager.Order == nil {
  2602. pager.Order = DefaultWorkExperienceOrder
  2603. }
  2604. return pager, nil
  2605. }
  2606. func (p *WorkExperiencePager) ApplyFilter(query *WorkExperienceQuery) (*WorkExperienceQuery, error) {
  2607. if p.Filter != nil {
  2608. return p.Filter(query)
  2609. }
  2610. return query, nil
  2611. }
  2612. // WorkExperiencePageList is WorkExperience PageList result.
  2613. type WorkExperiencePageList struct {
  2614. List []*WorkExperience `json:"list"`
  2615. PageDetails *PageDetails `json:"pageDetails"`
  2616. }
  2617. func (we *WorkExperienceQuery) Page(
  2618. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WorkExperiencePaginateOption,
  2619. ) (*WorkExperiencePageList, error) {
  2620. pager, err := newWorkExperiencePager(opts)
  2621. if err != nil {
  2622. return nil, err
  2623. }
  2624. if we, err = pager.ApplyFilter(we); err != nil {
  2625. return nil, err
  2626. }
  2627. ret := &WorkExperiencePageList{}
  2628. ret.PageDetails = &PageDetails{
  2629. Page: pageNum,
  2630. Size: pageSize,
  2631. }
  2632. query := we.Clone()
  2633. query.ctx.Fields = nil
  2634. count, err := query.Count(ctx)
  2635. if err != nil {
  2636. return nil, err
  2637. }
  2638. ret.PageDetails.Total = uint64(count)
  2639. if pager.Order != nil {
  2640. we = we.Order(pager.Order)
  2641. } else {
  2642. we = we.Order(DefaultWorkExperienceOrder)
  2643. }
  2644. we = we.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2645. list, err := we.All(ctx)
  2646. if err != nil {
  2647. return nil, err
  2648. }
  2649. ret.List = list
  2650. return ret, nil
  2651. }
  2652. type WpChatroomPager struct {
  2653. Order wpchatroom.OrderOption
  2654. Filter func(*WpChatroomQuery) (*WpChatroomQuery, error)
  2655. }
  2656. // WpChatroomPaginateOption enables pagination customization.
  2657. type WpChatroomPaginateOption func(*WpChatroomPager)
  2658. // DefaultWpChatroomOrder is the default ordering of WpChatroom.
  2659. var DefaultWpChatroomOrder = Desc(wpchatroom.FieldID)
  2660. func newWpChatroomPager(opts []WpChatroomPaginateOption) (*WpChatroomPager, error) {
  2661. pager := &WpChatroomPager{}
  2662. for _, opt := range opts {
  2663. opt(pager)
  2664. }
  2665. if pager.Order == nil {
  2666. pager.Order = DefaultWpChatroomOrder
  2667. }
  2668. return pager, nil
  2669. }
  2670. func (p *WpChatroomPager) ApplyFilter(query *WpChatroomQuery) (*WpChatroomQuery, error) {
  2671. if p.Filter != nil {
  2672. return p.Filter(query)
  2673. }
  2674. return query, nil
  2675. }
  2676. // WpChatroomPageList is WpChatroom PageList result.
  2677. type WpChatroomPageList struct {
  2678. List []*WpChatroom `json:"list"`
  2679. PageDetails *PageDetails `json:"pageDetails"`
  2680. }
  2681. func (wc *WpChatroomQuery) Page(
  2682. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WpChatroomPaginateOption,
  2683. ) (*WpChatroomPageList, error) {
  2684. pager, err := newWpChatroomPager(opts)
  2685. if err != nil {
  2686. return nil, err
  2687. }
  2688. if wc, err = pager.ApplyFilter(wc); err != nil {
  2689. return nil, err
  2690. }
  2691. ret := &WpChatroomPageList{}
  2692. ret.PageDetails = &PageDetails{
  2693. Page: pageNum,
  2694. Size: pageSize,
  2695. }
  2696. query := wc.Clone()
  2697. query.ctx.Fields = nil
  2698. count, err := query.Count(ctx)
  2699. if err != nil {
  2700. return nil, err
  2701. }
  2702. ret.PageDetails.Total = uint64(count)
  2703. if pager.Order != nil {
  2704. wc = wc.Order(pager.Order)
  2705. } else {
  2706. wc = wc.Order(DefaultWpChatroomOrder)
  2707. }
  2708. wc = wc.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2709. list, err := wc.All(ctx)
  2710. if err != nil {
  2711. return nil, err
  2712. }
  2713. ret.List = list
  2714. return ret, nil
  2715. }
  2716. type WpChatroomMemberPager struct {
  2717. Order wpchatroommember.OrderOption
  2718. Filter func(*WpChatroomMemberQuery) (*WpChatroomMemberQuery, error)
  2719. }
  2720. // WpChatroomMemberPaginateOption enables pagination customization.
  2721. type WpChatroomMemberPaginateOption func(*WpChatroomMemberPager)
  2722. // DefaultWpChatroomMemberOrder is the default ordering of WpChatroomMember.
  2723. var DefaultWpChatroomMemberOrder = Desc(wpchatroommember.FieldID)
  2724. func newWpChatroomMemberPager(opts []WpChatroomMemberPaginateOption) (*WpChatroomMemberPager, error) {
  2725. pager := &WpChatroomMemberPager{}
  2726. for _, opt := range opts {
  2727. opt(pager)
  2728. }
  2729. if pager.Order == nil {
  2730. pager.Order = DefaultWpChatroomMemberOrder
  2731. }
  2732. return pager, nil
  2733. }
  2734. func (p *WpChatroomMemberPager) ApplyFilter(query *WpChatroomMemberQuery) (*WpChatroomMemberQuery, error) {
  2735. if p.Filter != nil {
  2736. return p.Filter(query)
  2737. }
  2738. return query, nil
  2739. }
  2740. // WpChatroomMemberPageList is WpChatroomMember PageList result.
  2741. type WpChatroomMemberPageList struct {
  2742. List []*WpChatroomMember `json:"list"`
  2743. PageDetails *PageDetails `json:"pageDetails"`
  2744. }
  2745. func (wcm *WpChatroomMemberQuery) Page(
  2746. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WpChatroomMemberPaginateOption,
  2747. ) (*WpChatroomMemberPageList, error) {
  2748. pager, err := newWpChatroomMemberPager(opts)
  2749. if err != nil {
  2750. return nil, err
  2751. }
  2752. if wcm, err = pager.ApplyFilter(wcm); err != nil {
  2753. return nil, err
  2754. }
  2755. ret := &WpChatroomMemberPageList{}
  2756. ret.PageDetails = &PageDetails{
  2757. Page: pageNum,
  2758. Size: pageSize,
  2759. }
  2760. query := wcm.Clone()
  2761. query.ctx.Fields = nil
  2762. count, err := query.Count(ctx)
  2763. if err != nil {
  2764. return nil, err
  2765. }
  2766. ret.PageDetails.Total = uint64(count)
  2767. if pager.Order != nil {
  2768. wcm = wcm.Order(pager.Order)
  2769. } else {
  2770. wcm = wcm.Order(DefaultWpChatroomMemberOrder)
  2771. }
  2772. wcm = wcm.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2773. list, err := wcm.All(ctx)
  2774. if err != nil {
  2775. return nil, err
  2776. }
  2777. ret.List = list
  2778. return ret, nil
  2779. }
  2780. type WxPager struct {
  2781. Order wx.OrderOption
  2782. Filter func(*WxQuery) (*WxQuery, error)
  2783. }
  2784. // WxPaginateOption enables pagination customization.
  2785. type WxPaginateOption func(*WxPager)
  2786. // DefaultWxOrder is the default ordering of Wx.
  2787. var DefaultWxOrder = Desc(wx.FieldID)
  2788. func newWxPager(opts []WxPaginateOption) (*WxPager, error) {
  2789. pager := &WxPager{}
  2790. for _, opt := range opts {
  2791. opt(pager)
  2792. }
  2793. if pager.Order == nil {
  2794. pager.Order = DefaultWxOrder
  2795. }
  2796. return pager, nil
  2797. }
  2798. func (p *WxPager) ApplyFilter(query *WxQuery) (*WxQuery, error) {
  2799. if p.Filter != nil {
  2800. return p.Filter(query)
  2801. }
  2802. return query, nil
  2803. }
  2804. // WxPageList is Wx PageList result.
  2805. type WxPageList struct {
  2806. List []*Wx `json:"list"`
  2807. PageDetails *PageDetails `json:"pageDetails"`
  2808. }
  2809. func (w *WxQuery) Page(
  2810. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WxPaginateOption,
  2811. ) (*WxPageList, error) {
  2812. pager, err := newWxPager(opts)
  2813. if err != nil {
  2814. return nil, err
  2815. }
  2816. if w, err = pager.ApplyFilter(w); err != nil {
  2817. return nil, err
  2818. }
  2819. ret := &WxPageList{}
  2820. ret.PageDetails = &PageDetails{
  2821. Page: pageNum,
  2822. Size: pageSize,
  2823. }
  2824. query := w.Clone()
  2825. query.ctx.Fields = nil
  2826. count, err := query.Count(ctx)
  2827. if err != nil {
  2828. return nil, err
  2829. }
  2830. ret.PageDetails.Total = uint64(count)
  2831. if pager.Order != nil {
  2832. w = w.Order(pager.Order)
  2833. } else {
  2834. w = w.Order(DefaultWxOrder)
  2835. }
  2836. w = w.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2837. list, err := w.All(ctx)
  2838. if err != nil {
  2839. return nil, err
  2840. }
  2841. ret.List = list
  2842. return ret, nil
  2843. }
  2844. type WxCardPager struct {
  2845. Order wxcard.OrderOption
  2846. Filter func(*WxCardQuery) (*WxCardQuery, error)
  2847. }
  2848. // WxCardPaginateOption enables pagination customization.
  2849. type WxCardPaginateOption func(*WxCardPager)
  2850. // DefaultWxCardOrder is the default ordering of WxCard.
  2851. var DefaultWxCardOrder = Desc(wxcard.FieldID)
  2852. func newWxCardPager(opts []WxCardPaginateOption) (*WxCardPager, error) {
  2853. pager := &WxCardPager{}
  2854. for _, opt := range opts {
  2855. opt(pager)
  2856. }
  2857. if pager.Order == nil {
  2858. pager.Order = DefaultWxCardOrder
  2859. }
  2860. return pager, nil
  2861. }
  2862. func (p *WxCardPager) ApplyFilter(query *WxCardQuery) (*WxCardQuery, error) {
  2863. if p.Filter != nil {
  2864. return p.Filter(query)
  2865. }
  2866. return query, nil
  2867. }
  2868. // WxCardPageList is WxCard PageList result.
  2869. type WxCardPageList struct {
  2870. List []*WxCard `json:"list"`
  2871. PageDetails *PageDetails `json:"pageDetails"`
  2872. }
  2873. func (wc *WxCardQuery) Page(
  2874. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WxCardPaginateOption,
  2875. ) (*WxCardPageList, error) {
  2876. pager, err := newWxCardPager(opts)
  2877. if err != nil {
  2878. return nil, err
  2879. }
  2880. if wc, err = pager.ApplyFilter(wc); err != nil {
  2881. return nil, err
  2882. }
  2883. ret := &WxCardPageList{}
  2884. ret.PageDetails = &PageDetails{
  2885. Page: pageNum,
  2886. Size: pageSize,
  2887. }
  2888. query := wc.Clone()
  2889. query.ctx.Fields = nil
  2890. count, err := query.Count(ctx)
  2891. if err != nil {
  2892. return nil, err
  2893. }
  2894. ret.PageDetails.Total = uint64(count)
  2895. if pager.Order != nil {
  2896. wc = wc.Order(pager.Order)
  2897. } else {
  2898. wc = wc.Order(DefaultWxCardOrder)
  2899. }
  2900. wc = wc.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2901. list, err := wc.All(ctx)
  2902. if err != nil {
  2903. return nil, err
  2904. }
  2905. ret.List = list
  2906. return ret, nil
  2907. }
  2908. type WxCardUserPager struct {
  2909. Order wxcarduser.OrderOption
  2910. Filter func(*WxCardUserQuery) (*WxCardUserQuery, error)
  2911. }
  2912. // WxCardUserPaginateOption enables pagination customization.
  2913. type WxCardUserPaginateOption func(*WxCardUserPager)
  2914. // DefaultWxCardUserOrder is the default ordering of WxCardUser.
  2915. var DefaultWxCardUserOrder = Desc(wxcarduser.FieldID)
  2916. func newWxCardUserPager(opts []WxCardUserPaginateOption) (*WxCardUserPager, error) {
  2917. pager := &WxCardUserPager{}
  2918. for _, opt := range opts {
  2919. opt(pager)
  2920. }
  2921. if pager.Order == nil {
  2922. pager.Order = DefaultWxCardUserOrder
  2923. }
  2924. return pager, nil
  2925. }
  2926. func (p *WxCardUserPager) ApplyFilter(query *WxCardUserQuery) (*WxCardUserQuery, error) {
  2927. if p.Filter != nil {
  2928. return p.Filter(query)
  2929. }
  2930. return query, nil
  2931. }
  2932. // WxCardUserPageList is WxCardUser PageList result.
  2933. type WxCardUserPageList struct {
  2934. List []*WxCardUser `json:"list"`
  2935. PageDetails *PageDetails `json:"pageDetails"`
  2936. }
  2937. func (wcu *WxCardUserQuery) Page(
  2938. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WxCardUserPaginateOption,
  2939. ) (*WxCardUserPageList, error) {
  2940. pager, err := newWxCardUserPager(opts)
  2941. if err != nil {
  2942. return nil, err
  2943. }
  2944. if wcu, err = pager.ApplyFilter(wcu); err != nil {
  2945. return nil, err
  2946. }
  2947. ret := &WxCardUserPageList{}
  2948. ret.PageDetails = &PageDetails{
  2949. Page: pageNum,
  2950. Size: pageSize,
  2951. }
  2952. query := wcu.Clone()
  2953. query.ctx.Fields = nil
  2954. count, err := query.Count(ctx)
  2955. if err != nil {
  2956. return nil, err
  2957. }
  2958. ret.PageDetails.Total = uint64(count)
  2959. if pager.Order != nil {
  2960. wcu = wcu.Order(pager.Order)
  2961. } else {
  2962. wcu = wcu.Order(DefaultWxCardUserOrder)
  2963. }
  2964. wcu = wcu.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  2965. list, err := wcu.All(ctx)
  2966. if err != nil {
  2967. return nil, err
  2968. }
  2969. ret.List = list
  2970. return ret, nil
  2971. }
  2972. type WxCardVisitPager struct {
  2973. Order wxcardvisit.OrderOption
  2974. Filter func(*WxCardVisitQuery) (*WxCardVisitQuery, error)
  2975. }
  2976. // WxCardVisitPaginateOption enables pagination customization.
  2977. type WxCardVisitPaginateOption func(*WxCardVisitPager)
  2978. // DefaultWxCardVisitOrder is the default ordering of WxCardVisit.
  2979. var DefaultWxCardVisitOrder = Desc(wxcardvisit.FieldID)
  2980. func newWxCardVisitPager(opts []WxCardVisitPaginateOption) (*WxCardVisitPager, error) {
  2981. pager := &WxCardVisitPager{}
  2982. for _, opt := range opts {
  2983. opt(pager)
  2984. }
  2985. if pager.Order == nil {
  2986. pager.Order = DefaultWxCardVisitOrder
  2987. }
  2988. return pager, nil
  2989. }
  2990. func (p *WxCardVisitPager) ApplyFilter(query *WxCardVisitQuery) (*WxCardVisitQuery, error) {
  2991. if p.Filter != nil {
  2992. return p.Filter(query)
  2993. }
  2994. return query, nil
  2995. }
  2996. // WxCardVisitPageList is WxCardVisit PageList result.
  2997. type WxCardVisitPageList struct {
  2998. List []*WxCardVisit `json:"list"`
  2999. PageDetails *PageDetails `json:"pageDetails"`
  3000. }
  3001. func (wcv *WxCardVisitQuery) Page(
  3002. ctx context.Context, pageNum uint64, pageSize uint64, opts ...WxCardVisitPaginateOption,
  3003. ) (*WxCardVisitPageList, error) {
  3004. pager, err := newWxCardVisitPager(opts)
  3005. if err != nil {
  3006. return nil, err
  3007. }
  3008. if wcv, err = pager.ApplyFilter(wcv); err != nil {
  3009. return nil, err
  3010. }
  3011. ret := &WxCardVisitPageList{}
  3012. ret.PageDetails = &PageDetails{
  3013. Page: pageNum,
  3014. Size: pageSize,
  3015. }
  3016. query := wcv.Clone()
  3017. query.ctx.Fields = nil
  3018. count, err := query.Count(ctx)
  3019. if err != nil {
  3020. return nil, err
  3021. }
  3022. ret.PageDetails.Total = uint64(count)
  3023. if pager.Order != nil {
  3024. wcv = wcv.Order(pager.Order)
  3025. } else {
  3026. wcv = wcv.Order(DefaultWxCardVisitOrder)
  3027. }
  3028. wcv = wcv.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  3029. list, err := wcv.All(ctx)
  3030. if err != nil {
  3031. return nil, err
  3032. }
  3033. ret.List = list
  3034. return ret, nil
  3035. }
  3036. type XunjiPager struct {
  3037. Order xunji.OrderOption
  3038. Filter func(*XunjiQuery) (*XunjiQuery, error)
  3039. }
  3040. // XunjiPaginateOption enables pagination customization.
  3041. type XunjiPaginateOption func(*XunjiPager)
  3042. // DefaultXunjiOrder is the default ordering of Xunji.
  3043. var DefaultXunjiOrder = Desc(xunji.FieldID)
  3044. func newXunjiPager(opts []XunjiPaginateOption) (*XunjiPager, error) {
  3045. pager := &XunjiPager{}
  3046. for _, opt := range opts {
  3047. opt(pager)
  3048. }
  3049. if pager.Order == nil {
  3050. pager.Order = DefaultXunjiOrder
  3051. }
  3052. return pager, nil
  3053. }
  3054. func (p *XunjiPager) ApplyFilter(query *XunjiQuery) (*XunjiQuery, error) {
  3055. if p.Filter != nil {
  3056. return p.Filter(query)
  3057. }
  3058. return query, nil
  3059. }
  3060. // XunjiPageList is Xunji PageList result.
  3061. type XunjiPageList struct {
  3062. List []*Xunji `json:"list"`
  3063. PageDetails *PageDetails `json:"pageDetails"`
  3064. }
  3065. func (x *XunjiQuery) Page(
  3066. ctx context.Context, pageNum uint64, pageSize uint64, opts ...XunjiPaginateOption,
  3067. ) (*XunjiPageList, error) {
  3068. pager, err := newXunjiPager(opts)
  3069. if err != nil {
  3070. return nil, err
  3071. }
  3072. if x, err = pager.ApplyFilter(x); err != nil {
  3073. return nil, err
  3074. }
  3075. ret := &XunjiPageList{}
  3076. ret.PageDetails = &PageDetails{
  3077. Page: pageNum,
  3078. Size: pageSize,
  3079. }
  3080. query := x.Clone()
  3081. query.ctx.Fields = nil
  3082. count, err := query.Count(ctx)
  3083. if err != nil {
  3084. return nil, err
  3085. }
  3086. ret.PageDetails.Total = uint64(count)
  3087. if pager.Order != nil {
  3088. x = x.Order(pager.Order)
  3089. } else {
  3090. x = x.Order(DefaultXunjiOrder)
  3091. }
  3092. x = x.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  3093. list, err := x.All(ctx)
  3094. if err != nil {
  3095. return nil, err
  3096. }
  3097. ret.List = list
  3098. return ret, nil
  3099. }
  3100. type XunjiServicePager struct {
  3101. Order xunjiservice.OrderOption
  3102. Filter func(*XunjiServiceQuery) (*XunjiServiceQuery, error)
  3103. }
  3104. // XunjiServicePaginateOption enables pagination customization.
  3105. type XunjiServicePaginateOption func(*XunjiServicePager)
  3106. // DefaultXunjiServiceOrder is the default ordering of XunjiService.
  3107. var DefaultXunjiServiceOrder = Desc(xunjiservice.FieldID)
  3108. func newXunjiServicePager(opts []XunjiServicePaginateOption) (*XunjiServicePager, error) {
  3109. pager := &XunjiServicePager{}
  3110. for _, opt := range opts {
  3111. opt(pager)
  3112. }
  3113. if pager.Order == nil {
  3114. pager.Order = DefaultXunjiServiceOrder
  3115. }
  3116. return pager, nil
  3117. }
  3118. func (p *XunjiServicePager) ApplyFilter(query *XunjiServiceQuery) (*XunjiServiceQuery, error) {
  3119. if p.Filter != nil {
  3120. return p.Filter(query)
  3121. }
  3122. return query, nil
  3123. }
  3124. // XunjiServicePageList is XunjiService PageList result.
  3125. type XunjiServicePageList struct {
  3126. List []*XunjiService `json:"list"`
  3127. PageDetails *PageDetails `json:"pageDetails"`
  3128. }
  3129. func (xs *XunjiServiceQuery) Page(
  3130. ctx context.Context, pageNum uint64, pageSize uint64, opts ...XunjiServicePaginateOption,
  3131. ) (*XunjiServicePageList, error) {
  3132. pager, err := newXunjiServicePager(opts)
  3133. if err != nil {
  3134. return nil, err
  3135. }
  3136. if xs, err = pager.ApplyFilter(xs); err != nil {
  3137. return nil, err
  3138. }
  3139. ret := &XunjiServicePageList{}
  3140. ret.PageDetails = &PageDetails{
  3141. Page: pageNum,
  3142. Size: pageSize,
  3143. }
  3144. query := xs.Clone()
  3145. query.ctx.Fields = nil
  3146. count, err := query.Count(ctx)
  3147. if err != nil {
  3148. return nil, err
  3149. }
  3150. ret.PageDetails.Total = uint64(count)
  3151. if pager.Order != nil {
  3152. xs = xs.Order(pager.Order)
  3153. } else {
  3154. xs = xs.Order(DefaultXunjiServiceOrder)
  3155. }
  3156. xs = xs.Offset(int((pageNum - 1) * pageSize)).Limit(int(pageSize))
  3157. list, err := xs.All(ctx)
  3158. if err != nil {
  3159. return nil, err
  3160. }
  3161. ret.List = list
  3162. return ret, nil
  3163. }