commit
7b999a670c
243 files changed
+24818
No files matched your search
@@ -0,0 +1,20 @@
|
||||
import { Project } from '../entities/project.entity.js';
|
||||
import { PaginationMeta } from '../../../../common/interfaces/pagination-meta.interface.js';
|
||||
|
||||
/** DI-токен, т.к. интерфейсы стираются при компиляции TS */
|
||||
export const PROJECT_REPOSITORY = Symbol('PROJECT_REPOSITORY');
|
||||
|
||||
export interface IProjectRepository {
|
||||
/** Проект виден владельцу и участникам проекта (ProjectMember) */
|
||||
findById(id: string, userId: string): Promise<Project | null>;
|
||||
findAll(params: {
|
||||
limit: number;
|
||||
page: number;
|
||||
userId: string;
|
||||
}): Promise<{ list: Project[]; meta: PaginationMeta }>;
|
||||
create(project: Project): Promise<Project>;
|
||||
update(project: Project): Promise<void>;
|
||||
delete(id: string): Promise<void>;
|
||||
/** Добавляет пользователя в участники проекта, если он ещё не владелец/участник */
|
||||
addMember(projectId: string, userId: string): Promise<void>;
|
||||
}
|
||||
Reference in new issue
Block a user