aceleradora-TW / descarte-certo

Projeto da turma 17/18
15 stars 6 forks source link

[Orçamento Rápido] - Enviar informações para efetuar calculo no backend #220

Open narukaioh opened 3 years ago

narukaioh commented 3 years ago

Contexto

Em caso de dúvidas fazer kickoff com Ju

Para fazer o calculo do orçamento rápido precisamos criar a seguinte estrutura de dados:

Screen Shot 2021-07-10 at 05 13 03

Deve ser adicionado ao payload que enviamos ao backend atualmente essa nova ramificação de informações

    calculate: {
      amount: Number,
      zones: String,
      type: String,
      materials: String,
      access: String
    }

Notas técnicas

Sujestão de implementação de funções para formatar os dados do formulário

const adapterZone = (region) => {
  const locale = region.toUpperCase()
  if (locale.includes('SUL')) return 'SOUTH_ZONE'
  if (locale.includes('CENTRO')) return 'DOWNTOWN'
  return 'OTHER_ZONES'
}
const adapterType = (residueMeasure) => {
  if (residueMeasure.toUpperCase().includes('CAÇAMBA')) return 'BUCKET'
  return 'BAG'
}

const adapterMaterial = (material) => {
  const residueType = material.toUpperCase()
  if (residueType.includes('CALIÇA')) return 'RUBBLE'
  if (residueType.includes('MADEIRA')) return 'WOOD'
  if (residueType.includes('MIX')) return 'MIXED'
  return 'PLASTER'
}
const adapterAccess = (accessType) => {
  if (!accessType) return ''
  if (accessType.toUpperCase().includes('ELEVADOR')) return 'ELEVATOR'
  return 'GROUND_FLOOR'
}

A implementação desse código se encontra no componente OrderForm.js da modal, exatamente nesse objeto:


    const requestCreateEstimate = {
      requester: {
        fullName: values.fullName,
        email: values.email,
        cellphone: values.cellphone,
      },
      residueAddress: {
        region: values.region,
        locationInfo:
          values.accessType + values.localDescription + values.andar,
      },
      residueRequest: {
        residueType: values.residueType,
        residueMeasure: values.residueAmount + " " + values.residueMeasure,
      },
    };

Para fins de teste a dupla pode colocar um console log para mostrar o objeto requestCreateEstimate apos ser criado.