import { IMoveRepository, MoveCreate } from '@app/domain'; import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { MoveEntity, PathType } from '../entities'; import { DummyValue, GenerateSql } from '../infra.util'; @Injectable() export class MoveRepository implements IMoveRepository { constructor(@InjectRepository(MoveEntity) private repository: Repository) {} create(entity: MoveCreate): Promise { return this.repository.save(entity); } @GenerateSql({ params: [DummyValue.UUID, DummyValue.STRING] }) getByEntity(entityId: string, pathType: PathType): Promise { return this.repository.findOne({ where: { entityId, pathType } }); } update(entity: Partial): Promise { return this.repository.save(entity); } delete(move: MoveEntity): Promise { return this.repository.remove(move); } }