77 lines
2.5 KiB
TypeScript
77 lines
2.5 KiB
TypeScript
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<SchemaDBInterface> {
|
|
query: FilterQuery<SchemaDBInterface & IEngineSchema>;
|
|
ctx?: ApolloContext | null;
|
|
}
|
|
|
|
export interface GetManyInput<SchemaDBInterface> {
|
|
query: FilterQuery<SchemaDBInterface & IEngineSchema>;
|
|
pagination?: GetArgs;
|
|
ctx?: ApolloContext | null;
|
|
}
|
|
export interface GetAllInput<SchemaDBInterface> {
|
|
query: FilterQuery<SchemaDBInterface & IEngineSchema>;
|
|
ctx?: ApolloContext | null;
|
|
}
|
|
export interface GetCountInput<SchemaDBInterface> {
|
|
query: FilterQuery<SchemaDBInterface & IEngineSchema>;
|
|
ctx?: ApolloContext | null;
|
|
}
|
|
|
|
export interface GetOneInput<SchemaDBInterface> {
|
|
query: FilterQuery<SchemaDBInterface & IEngineSchema>;
|
|
ctx?: ApolloContext | null;
|
|
}
|
|
|
|
export interface SaveOneInput<SchemaDBInterface> {
|
|
newData?: SchemaDBInterface & Partial<IEngineSchema>;
|
|
additionnalData?: Partial<SchemaDBInterface & IEngineSchema>;
|
|
ctx?: ApolloContext | null;
|
|
upsert?: boolean;
|
|
}
|
|
|
|
export interface SaveManyInput<SchemaDBInterface> {
|
|
models: EngineModel<SchemaDBInterface, any, any>[];
|
|
ctx?: ApolloContext | null;
|
|
}
|
|
|
|
export interface BulkInput<SchemaDBInterface, SchemaDB, Schema> {
|
|
inserts?: EngineModel<SchemaDBInterface, SchemaDB, Schema>[];
|
|
updates?: {
|
|
query: FilterQuery<SchemaDBInterface & IEngineSchema>;
|
|
newData?: Partial<SchemaDBInterface & IEngineSchema>;
|
|
updateRequest?: UpdateQuery<SchemaDBInterface & IEngineSchema>;
|
|
}[];
|
|
ctx?: ApolloContext | null;
|
|
}
|
|
|
|
export interface UpdateOneInput<SchemaDBInterface> {
|
|
query: FilterQuery<SchemaDBInterface & IEngineSchema>;
|
|
newData: Partial<SchemaDBInterface & IEngineSchema>;
|
|
ctx?: ApolloContext | null;
|
|
}
|
|
|
|
export interface UpdateOneCustomInput<SchemaDBInterface> {
|
|
query: FilterQuery<SchemaDBInterface & IEngineSchema>;
|
|
updateRequest: UpdateQuery<SchemaDBInterface & IEngineSchema>;
|
|
ctx?: ApolloContext | null;
|
|
}
|
|
|
|
export interface UpdateOneSubField<SchemaDBInterface> {
|
|
query: FilterQuery<SchemaDBInterface & IEngineSchema>;
|
|
fieldName: keyof SchemaDBInterface;
|
|
subPath?: string;
|
|
fieldValue: any;
|
|
ctx?: ApolloContext | null;
|
|
}
|
|
|
|
export interface DeleteOneInput<SchemaDBInterface> {
|
|
query: FilterQuery<SchemaDBInterface & IEngineSchema>;
|
|
ctx?: ApolloContext | null;
|
|
}
|