@chevre/domain
Version:
Chevre Domain Library for Node.js
116 lines (115 loc) • 3.41 kB
TypeScript
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>;
}