import { ChangeOperation, Record } from "./interfaces/dataUnit.js"; /*** * `Change`: Dados que representam uma alteração. */ export class Change { public dataUnit: string; public record: Record; public sourceId: string | undefined; public updatingFields: any; private _operation: ChangeOperation; constructor(dataUnit: string, record: Record, updates: any, operation: ChangeOperation, sourceId?: string) { this.dataUnit = dataUnit; this.record = record; this.sourceId = sourceId; this.updatingFields = updates; this._operation = operation; } /** * * Obtém o tipo de operação que está sendo realizada. * * @returns - Ação que está sendo executada. * */ public get operation(): string { return this._operation.toString(); } /** * * Retorna se o DataUnit está em uma operação de inserção. * * @returns - Verdadeiro se a operação for de inserção. * */ public isInsert(): boolean { return this._operation === ChangeOperation.INSERT; } /** * * Retorna se o DataUnit está em uma operação de cópia. * * @returns - Verdadeiro se a operação for de cópia. * */ public isCopy(): boolean { return this._operation === ChangeOperation.COPY; } /** * * Retorna se o DataUnit está em uma operação de deleção. * * @returns - Verdadeiro se a operação for de deleção. * */ public isDelete(): boolean { return this._operation === ChangeOperation.DELETE; } /** * * Retorna se o DataUnit está em uma operação de atualização. * * @returns - Verdadeiro se a operação for de atualização. * */ public isUpdate(): boolean { return this._operation === ChangeOperation.UPDATE; } }