|  | @@ -99,50 +99,52 @@ func (c *Ctx[T]) ListAllData() (data any, ok bool) {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func (c *Ctx[T]) PagingListData() (*model.DataList, bool) {
 | 
	
		
			
				|  |  | -	result, ok := c.result()
 | 
	
		
			
				|  |  | -	if !ok {
 | 
	
		
			
				|  |  | -		return nil, false
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	scopesResult := result.Session(&gorm.Session{}).Scopes(c.OrderAndPaginate())
 | 
	
		
			
				|  |  | -	data := &model.DataList{}
 | 
	
		
			
				|  |  | -	if c.scan == nil {
 | 
	
		
			
				|  |  | -		models := make([]*T, 0)
 | 
	
		
			
				|  |  | -		scopesResult.Find(&models)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		if c.transformer != nil {
 | 
	
		
			
				|  |  | -			transformed := make([]any, 0)
 | 
	
		
			
				|  |  | -			for k := range models {
 | 
	
		
			
				|  |  | -				transformed = append(transformed, c.transformer(models[k]))
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -			data.Data = transformed
 | 
	
		
			
				|  |  | -		} else {
 | 
	
		
			
				|  |  | -			data.Data = models
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -	} else {
 | 
	
		
			
				|  |  | -		data.Data = c.scan(scopesResult)
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	var totalRecords int64
 | 
	
		
			
				|  |  | -	result.Session(&gorm.Session{}).Count(&totalRecords)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	page := cast.ToInt(c.ctx.Query("page"))
 | 
	
		
			
				|  |  | -	if page == 0 {
 | 
	
		
			
				|  |  | -		page = 1
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	pageSize := settings.ServerSettings.PageSize
 | 
	
		
			
				|  |  | -	if reqPageSize := c.ctx.Query("page_size"); reqPageSize != "" {
 | 
	
		
			
				|  |  | -		pageSize = cast.ToInt(reqPageSize)
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	data.Pagination = model.Pagination{
 | 
	
		
			
				|  |  | -		Total:       totalRecords,
 | 
	
		
			
				|  |  | -		PerPage:     pageSize,
 | 
	
		
			
				|  |  | -		CurrentPage: page,
 | 
	
		
			
				|  |  | -		TotalPages:  model.TotalPage(totalRecords, pageSize),
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	return data, true
 | 
	
		
			
				|  |  | +    result, ok := c.result()
 | 
	
		
			
				|  |  | +    if !ok {
 | 
	
		
			
				|  |  | +        return nil, false
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    scopesResult := result.Scopes(c.OrderAndPaginate())
 | 
	
		
			
				|  |  | +    data := &model.DataList{}
 | 
	
		
			
				|  |  | +    if c.scan == nil {
 | 
	
		
			
				|  |  | +        models := make([]*T, 0)
 | 
	
		
			
				|  |  | +        scopesResult.Find(&models)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if c.transformer != nil {
 | 
	
		
			
				|  |  | +            transformed := make([]any, 0)
 | 
	
		
			
				|  |  | +            for k := range models {
 | 
	
		
			
				|  |  | +                transformed = append(transformed, c.transformer(models[k]))
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            data.Data = transformed
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            data.Data = models
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +        data.Data = c.scan(scopesResult)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    var totalRecords int64
 | 
	
		
			
				|  |  | +    delete(result.Statement.Clauses, "ORDER BY")
 | 
	
		
			
				|  |  | +    delete(result.Statement.Clauses, "LIMIT")
 | 
	
		
			
				|  |  | +    result.Count(&totalRecords)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    page := cast.ToInt(c.ctx.Query("page"))
 | 
	
		
			
				|  |  | +    if page == 0 {
 | 
	
		
			
				|  |  | +        page = 1
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    pageSize := settings.ServerSettings.PageSize
 | 
	
		
			
				|  |  | +    if reqPageSize := c.ctx.Query("page_size"); reqPageSize != "" {
 | 
	
		
			
				|  |  | +        pageSize = cast.ToInt(reqPageSize)
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    data.Pagination = model.Pagination{
 | 
	
		
			
				|  |  | +        Total:       totalRecords,
 | 
	
		
			
				|  |  | +        PerPage:     pageSize,
 | 
	
		
			
				|  |  | +        CurrentPage: page,
 | 
	
		
			
				|  |  | +        TotalPages:  model.TotalPage(totalRecords, pageSize),
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return data, true
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func (c *Ctx[T]) PagingList() {
 |