import { IListResponse_DTO } from "@shared/contexts"; export interface IPaginationDataProviderParam { pageIndex: number; pageSize: number; } export interface ISortItemDataProviderParam { order: string; field: string; } export interface IFilterItemDataProviderParam { field: string; operator?: string; value?: string; } export interface IGetListDataProviderParams { resource: string; quickSearchTerm?: string; pagination?: IPaginationDataProviderParam; sort?: ISortItemDataProviderParam[]; filters?: IFilterItemDataProviderParam[]; } export interface IGetOneDataProviderParams { resource: string; id: string; } export interface ISaveOneDataProviderParams { resource: string; data: T; id: string; } export interface ICreateOneDataProviderParams { resource: string; data: T; } export interface IUpdateOneDataProviderParams { resource: string; data: T; id: string; } export interface IRemoveOneDataProviderParams { resource: string; id: string; } /*export interface ICustomDataProviderParam { resource: string; method: string; params: any; }*/ export interface IDataSource { name: () => string; getList: (params: IGetListDataProviderParams) => Promise>; getOne: (params: IGetOneDataProviderParams) => Promise; //saveOne: (params: ISaveOneDataProviderParams

) => Promise; createOne: (params: ICreateOneDataProviderParams

) => Promise; updateOne: (params: IUpdateOneDataProviderParams

) => Promise; removeOne: (params: IRemoveOneDataProviderParams) => Promise; //custom: (params: ICustomDataProviderParam) => Promise; //getApiUrl: () => string; //create: () => any; //createMany: () => any; //removeMany: () => any; //getMany: () => any; //update: () => any; //updateMany: () => any; //upload: () => any; //custom: () => any; //getApiUrl: () => string; }