UNPKG

eust-conciliation

Version:
42 lines (31 loc) 1.06 kB
import { Inject, Injectable } from '@severo-tech/injection-decorator'; import { ILogger } from '../../contracts'; import { EustIssue, EustIssueType, EustIssueUnit } from '../../../domain/eust-issue'; import { IEustIssueRepository } from '../../contracts/eust-issue-repository'; export type EustIssueCreateDto = { debitIds?: string[], invoiceId?: string | null, unit: EustIssueUnit, type: EustIssueType, description?: string, causedBy?: any, resolved?: boolean, }; @Injectable() export class CreateEustIssueUseCase { @Inject('ZenviaLogger') private readonly logger!: ILogger; @Inject('EustIssueRepository') private readonly eustIssueRepository!: IEustIssueRepository; public async execute(data: EustIssueCreateDto): Promise<EustIssue> { return this.eustIssueRepository.save({ debitIds: data.debitIds ?? [], invoiceId: data.invoiceId, description: data.description?.trim(), causedBy: data.causedBy, resolved: data.resolved ?? false, type: data.type, unit: data.unit, }); } }