import type ApiResource from '~/models/ApiResource' import type { EnumChoice } from '~/types/interfaces' import type { Query as PiniaOrmQuery, Collection as PiniaOrmCollection, } from 'pinia-orm' type AnyJson = Record interface AssociativeArray { [key: string]: any } interface Connector { request( method: HTTP_METHOD, url: string, body: null | any, params: null | AssociativeArray, query: null | AssociativeArray, ) } interface HydraMetadata { readonly totalItems?: number firstPage?: number lastPage?: number nextPage?: number previousPage?: number type?: METADATA_TYPE } interface ApiResponse { data: AnyJson metadata: HydraMetadata } interface ApiCollection extends ApiResponse { data: AnyJson metadata: HydraMetadata } interface Pagination { first?: number last?: number next?: number previous?: number } interface Collection { items: PiniaOrmCollection pagination: Pagination totalItems: number | undefined } interface ApiFilter { applyToPiniaOrmQuery: ( query: PiniaOrmQuery, ) => PiniaOrmQuery getApiQueryPart: () => string } interface EnumItem { value: string label: string } type Enum = Array