UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

64 lines (63 loc) 1.85 kB
import type { Connection, FilterQuery } from 'mongoose'; import * as factory from '../factory'; import { IProductModel } from './mongoose/schemas/productModel'; type IKeyOfProjection = keyof IProductModel | '_id'; type ISearchConditions = Pick<factory.product.ISearchConditions, 'id' | 'limit' | 'page' | 'project'> & { category?: { codeValue?: { $in?: string[]; }; inCodeSet?: { identifier?: { $eq?: string; }; }; }; }; /** * プロダクトモデルリポジトリ */ export declare class ProductModelRepo { private readonly productModelModel; constructor(connection: Connection); static CREATE_MONGO_CONDITIONS(params: ISearchConditions): FilterQuery<factory.product.IProduct>[]; search(conditions: ISearchConditions, inclusion: IKeyOfProjection[], exclusion: IKeyOfProjection[]): Promise<IProductModel[]>; deleteById(params: { id: string; }): Promise<void>; /** * プロダクトを保管する */ save(params: { /** * idを指定すれば更新 */ id?: string; $set: IProductModel; }): Promise<{ id: string; }>; /** * 区分から同期する */ upsertByCategory(params: { category: Pick<factory.categoryCode.ICategoryCode, 'codeValue' | 'inCodeSet' | 'name' | 'project'> & { id: string; }; }): Promise<{ id: string; }>; /** * 区分から削除する */ deleteByCategory(params: { category: Pick<factory.categoryCode.ICategoryCode, 'project'> & { id: string; }; }): Promise<void>; unsetUnnecessaryFields(params: { filter: any; $unset: any; }): Promise<import("mongoose").UpdateWriteOpResult>; } export {};