All files / infra/repositore-data-base-prisma/mappers invoice-mapper.ts

100% Statements 73/73
21.42% Branches 6/28
100% Functions 3/3
100% Lines 73/73

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 741x 2x 2x 2x 2x 2x 2x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 2x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x  
 
import { Invoice as InvoicePrisma } from "@prisma/client";
import { Invoice } from "../../../domain/entity/invoice";
import { User } from "../../../domain/entity/user";
 
 
export class InvoiceMapper {
    static toEntity(data: InvoicePrisma | (InvoicePrisma & { user: User })): Invoice {
        const invoiceProps = {
          id:data.id,
          userId: data.userId,
          installationNumber: data.installationNumber,
          monthReferring: data.monthReferring,
          expirationDate: data.expirationDate,
          amountToBePaid: data.amountToBePaid,
          publicContribution: data.publicContribution,
          path: data.path,
          energyDetails: {
            quantityEnergy: data.quantityEnergy ?? '',
            priceEnergy: data.priceEnergy ?? '',
            unityTariffEnergy: data.unityTariffEnergy ?? '',
            amountOfEnergyInject: data.amountOfEnergyInject ?? '',
            priceOfEnergyInject: data.priceOfEnergyInject ?? '',
            unityTariffOfEnergyInject: data.unityTariffOfEnergyInject ?? '',
          },
          icmsDetails: {
            amountIcms: data.amountIcms ?? '',
            priceIcms: data.priceIcms ?? '',
            unityIcms: data.unityIcms ?? '',
          },
          gdiDetails: {
            amountGDI: data.amountGDI ?? '',
            priceGDI: data.priceGDI ?? '',
            unityGDI: data.unityGDI ?? '',
          },
        };
    
        const user = 'user' in data ? data.user : undefined;
    
        return new Invoice(invoiceProps, user);
      }
  
  static invoceMapper(data: InvoicePrisma): Invoice {
    return new Invoice({
      id:data.id,
      userId: data.userId,
      installationNumber: data.installationNumber,
      monthReferring: data.monthReferring,
      expirationDate: data.expirationDate,
      amountToBePaid: data.amountToBePaid,
      publicContribution: data.publicContribution,
      path: data.path,
      energyDetails: {
        quantityEnergy: data.quantityEnergy ?? '',
        priceEnergy: data.priceEnergy ?? '',
        unityTariffEnergy: data.unityTariffEnergy ?? '',
        amountOfEnergyInject: data.amountOfEnergyInject ?? '',
        priceOfEnergyInject: data.priceOfEnergyInject ?? '',
        unityTariffOfEnergyInject: data.unityTariffOfEnergyInject ?? '',
      },
      icmsDetails: {
        amountIcms: data.amountIcms ?? '',
        priceIcms: data.priceIcms ?? '',
        unityIcms: data.unityIcms ?? '',
      },
      gdiDetails: {
        amountGDI: data.amountGDI ?? '',
        priceGDI: data.priceGDI ?? '',
        unityGDI: data.unityGDI ?? '',
      },
    });
  }
}