import type { BaseModel } from './model'; export interface BasicPageParams { page: number; pageSize: number; } export interface BasicFetchResult { items: T[]; total: number; } export interface RemoteData { key: string | number; data?: any; } export type PageQueryExtraKeyPrefix = keyof T & string; export type PageQueryExtraKeySuffix = 'in' | 'like' | 'likeLeft' | 'likeRight' | 'ge' | 'le' | 'precisest' | 'preciseed'; export type PageQueryExtraKey = `${PageQueryExtraKeyPrefix}_${PageQueryExtraKeySuffix}`; // export type PageQueryExtra = Partial, any>>; export type PageQueryExtra = { [K in PageQueryExtraKey]?: any; }; export interface PageParams { model: T; size: number; current: number; sort?: keyof T & string; order?: 'ascending' | 'descending'; extra?: PageQueryExtra; } export interface PageResult { records: T[]; // offset: number pages: string; current: string; total: string; size: string; orders: any[]; }