import { GetArgs } from '@seed/graphql/Request'; import { ApolloContext } from '@seed/interfaces/context'; import { FilterQuery, UpdateQuery } from 'mongodb'; import { EngineModel } from '../EngineModel'; import { IEngineSchema } from '../EngineSchema'; export interface GetQueryInput { query: FilterQuery; ctx?: ApolloContext | null; } export interface GetManyInput { query: FilterQuery; pagination?: GetArgs; ctx?: ApolloContext | null; } export interface GetAllInput { query: FilterQuery; ctx?: ApolloContext | null; } export interface GetCountInput { query: FilterQuery; ctx?: ApolloContext | null; } export interface GetOneInput { query: FilterQuery; ctx?: ApolloContext | null; } export interface SaveOneInput { newData?: SchemaDBInterface & Partial; additionnalData?: Partial; ctx?: ApolloContext | null; upsert?: boolean; } export interface SaveManyInput { models: EngineModel[]; ctx?: ApolloContext | null; } export interface BulkInput { inserts?: EngineModel[]; updates?: { query: FilterQuery; newData?: Partial; updateRequest?: UpdateQuery; }[]; ctx?: ApolloContext | null; } export interface UpdateOneInput { query: FilterQuery; newData: Partial; ctx?: ApolloContext | null; } export interface UpdateOneCustomInput { query: FilterQuery; updateRequest: UpdateQuery; ctx?: ApolloContext | null; } export interface UpdateOneSubField { query: FilterQuery; fieldName: keyof SchemaDBInterface; subPath?: string; fieldValue: any; ctx?: ApolloContext | null; } export interface DeleteOneInput { query: FilterQuery; ctx?: ApolloContext | null; }