import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository, MoreThan } from 'typeorm'; import { TMCheckListItem } from '../entities/check-list-item.entity'; @Injectable() export class CheckListItemRepository { constructor( @InjectRepository(TMCheckListItem) private readonly repository: Repository, ) {} findAll(limit: number, cursor?: Date) { return this.repository.findAndCount({ where: cursor ? { createdAt: MoreThan(cursor) } : {}, order: { createdAt: 'ASC' }, take: limit + 1, relations: ['task'], }); } findByTask(taskId: string, limit: number, cursor?: Date) { return this.repository.findAndCount({ where: cursor ? { taskId, createdAt: MoreThan(cursor) } : { taskId }, order: { createdAt: 'ASC' }, take: limit + 1, relations: ['task'], }); } findOneById(id: string) { return this.repository.findOne({ where: { id }, relations: ['task'], }); } findOneByCreatedAt(createdAt: Date) { return this.repository.findOne({ where: { createdAt }, order: { createdAt: 'ASC' }, }); } create(data: Partial) { return this.repository.create(data); } save(checkListItem: TMCheckListItem) { return this.repository.save(checkListItem); } update(id: string, data: Partial) { return this.repository.update(id, data); } delete(id: string) { return this.repository.delete(id); } }