eust-conciliation
Version:
42 lines (31 loc) • 1.06 kB
text/typescript
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,
};
()
export class CreateEustIssueUseCase {
('ZenviaLogger')
private readonly logger!: ILogger;
('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,
});
}
}