refactor: refactoring the project repository

This commit is contained in:
2026-07-05 14:23:09 +03:30
parent d4bd593f5b
commit 35d0d9f7cd
@@ -1,52 +1,13 @@
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { TMProject } from '../entities/project.entity';
import { Injectable } from "@nestjs/common";
import { InjectRepository } from "@nestjs/typeorm";
import { Repository } from "typeorm";
import { TMProject } from "../entities/project.entity";
@Injectable()
export class ProjectRepository {
export class ProjectRepository extends Repository<TMProject> {
constructor(
@InjectRepository(TMProject)
private readonly repository: Repository<TMProject>,
) {}
findAll(skip: number, take: number) {
return this.repository.findAndCount({
relations: ['workspace', 'taskPhases', 'users'],
skip,
take,
});
@InjectRepository(TMProject) projectRepository: Repository<TMProject>,
) {
super(projectRepository.target, projectRepository.manager, projectRepository.queryRunner);
}
findByWorkspace(workspaceId: string, skip: number, take: number) {
return this.repository.findAndCount({
where: { workspaceId },
relations: ['taskPhases', 'users'],
skip,
take,
});
}
findOneById(id: string) {
return this.repository.findOne({
where: { id },
relations: ['workspace', 'taskPhases', 'users'],
});
}
create(data: Partial<TMProject>) {
return this.repository.create(data);
}
save(project: TMProject) {
return this.repository.save(project);
}
update(id: string, data: Partial<TMProject>) {
return this.repository.update(id, data);
}
delete(id: string) {
return this.repository.delete(id);
}
}
}