UNPKG

@chevre/domain

Version:

Chevre Domain Library for Node.js

116 lines (115 loc) 3.41 kB
import type { Connection } from 'mongoose'; import * as factory from '../factory'; export type IOwnershipInfoWithId = factory.ownershipInfo.IOwnershipInfo<factory.ownershipInfo.IGood> & { id: string; }; /** * 所有権リポジトリ */ export declare class OwnershipInfoRepo { private readonly ownershipInfoModel; constructor(connection: Connection); static CREATE_MONGO_CONDITIONS(params: factory.ownershipInfo.ISearchConditions): any[]; /** * なければ作成する */ createIfNotExistByIdentifier(ownershipInfo: Omit<IOwnershipInfoWithId, 'id'>): Promise<{ id: string; }>; projectFieldsById(params: { id: string; }, inclusion?: (keyof IOwnershipInfoWithId)[]): Promise<IOwnershipInfoWithId>; /** * 所有権を検索する */ projectFields(params: factory.ownershipInfo.ISearchConditions, inclusion?: (keyof IOwnershipInfoWithId)[]): Promise<IOwnershipInfoWithId[]>; /** * 識別子から所有期限を変更する * 存在しない場合undefinedを返す */ findByIdentifierAndUpdateOwnedThrough(params: { project: { id: string; }; identifier: string; ownedThrough: Date; }): Promise<Pick<IOwnershipInfoWithId, 'id' | 'identifier'> | undefined>; /** * 所有者の所有権を全て削除する */ deleteByOwnedById(params: { project: { id: string; }; ownedBy: { id: string; }; }): Promise<{ deletedCount?: number; }>; /** * 特定所有者の特定所有権を削除する */ deleteByIdAndOwnedById(params: { project: { id: string; }; id: string; ownedBy: { id: string; }; }): Promise<{ deletedCount?: number; }>; /** * 識別子から所有期限切れの所有権を削除する */ deleteExpiredByIdentifiers(params: { project: { id: string; }; identifiers: string[]; ownedThrough: { $lt: Date; }; }): Promise<void>; getCursor(conditions: any, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, {}, factory.ownershipInfo.IOwnershipInfo<factory.ownershipInfo.IGood> & { _id: string; }> & factory.ownershipInfo.IOwnershipInfo<factory.ownershipInfo.IGood> & { _id: string; } & Required<{ _id: string; }>, import("mongoose").QueryOptions<import("mongoose").Document<unknown, {}, factory.ownershipInfo.IOwnershipInfo<factory.ownershipInfo.IGood> & { _id: string; }> & factory.ownershipInfo.IOwnershipInfo<factory.ownershipInfo.IGood> & { _id: string; } & Required<{ _id: string; }>>>; /** * 所有者を追加する */ addOwnerIfNotExist(params: { /** * 所有権ID */ id: string; ownedBy: factory.ownershipInfo.IOwner; }): Promise<void>; /** * 所有者を削除する */ removeOwnerIfExist(params: { /** * 所有権ID */ id: string; ownedBy: { id: string; }; }): Promise<void>; unsetUnnecessaryFields(params: { filter: any; $unset: any; }): Promise<import("mongoose").UpdateWriteOpResult>; }