Skip to content

fixrfam/orcamentos.api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API de Geração de Orçamento em PDF - Fixr

Este repositório contém uma API simples para gerar orçamentos em PDF para o sistema Fixr.

Note

Essa API possui apenas um endpoint e não representa a lógica utilizada em produção. Ela serve apenas como uma demonstração, permitindo a criação de um orçamento PDF a partir dos dados fornecidos no corpo da requisição.

Endpoint

POST /pdf/estimate

Este endpoint recebe os dados do orçamento no corpo da requisição e insere essas informações em um template pré-definido, gerando um PDF de orçamento.

Parâmetros da Requisição

Para utilizar o endpoint, envie um POST com o corpo no formato JSON conforme o esquema a seguir:

import { z } from "zod";

const entitySchema = z.object({
    contactName: z.string(),
    address: z.string().optional(),
    email: z.string().email().optional(),
    phone: z.string().optional(),
});

// Esquema para os itens do orçamento
const estimateItemSchema = z.object({
    name: z.string(),
    type: z.string(),
    value: z.number(),
    quantity: z.number(),
});

// Esquema para os dados do orçamento
export const estimatePropsSchema = z.object({
    number: z.number(),
    date: z.string(), // Exemplo: "YYYY-MM-DD"
    company: z.object({
        businessName: z.string(),
        contactName: z.string().optional(),
        website: z.string().url().optional(),
        address: z.string().optional(),
        email: z.string().email().optional(),
        phone: z.string().optional(),
        cnpj: z.string(), // Insira validação de CNPJ se necessário
        img: z.string().optional(),
    }),
    client: entitySchema,
    items: z.array(estimateItemSchema),
    discountPercentage: z.number().optional(),
});

Exemplo de Requisição

POST /pdf/estimate
{
  "number": 1234,
  "date": "2024-11-06",
  "company": {
    "businessName": "Empresa Exemplo LTDA",
    "contactName": "João Silva",
    "website": "https://empresaexemplo.com",
    "address": "Rua Exemplo, 123",
    "email": "contato@empresaexemplo.com",
    "phone": "(11) 98765-4321",
    "cnpj": "12.345.678/0001-99",
    "img": "https://empresaexemplo.com/logo.png"
  },
  "client": {
    "contactName": "Maria Oliveira",
    "address": "Avenida Cliente, 456",
    "email": "maria@cliente.com",
    "phone": "(11) 99876-5432"
  },
  "items": [
    {
      "name": "Serviço A",
      "type": "Serviço",
      "value": 100.00,
      "quantity": 1
    },
    {
      "name": "Peça B",
      "type": "Produto",
      "value": 50.00,
      "quantity": 2
    }
  ],
  "discountPercentage": 10
}

Parâmetros do Corpo da Requisição

  • number (número): Número do orçamento.
  • date (string): Data do orçamento (ex.: "YYYY-MM-DD").
  • company (objeto): Informações da empresa.
    • businessName (string): Nome comercial da empresa.
    • contactName (string, opcional): Nome do contato na empresa.
    • website (URL, opcional): URL do site da empresa.
    • address (string, opcional): Endereço da empresa.
    • email (email, opcional): E-mail da empresa.
    • phone (string, opcional): Telefone da empresa.
    • cnpj (string): CNPJ da empresa.
    • img (URL, opcional): Logo da empresa.
  • client (objeto): Informações do cliente.
    • contactName (string): Nome do cliente.
    • address (string, opcional): Endereço do cliente.
    • email (email, opcional): E-mail do cliente.
    • phone (string, opcional): Telefone do cliente.
  • items (array de objetos): Lista de itens incluídos no orçamento.
    • name (string): Nome do item.
    • type (string): Tipo do item (ex.: "Serviço" ou "Produto").
    • value (número): Valor unitário do item.
    • quantity (número): Quantidade do item.
  • discountPercentage (número, opcional): Porcentagem de desconto a ser aplicada no orçamento.

Observação

Esta API foi projetada para fins de demonstração e não reflete a lógica completa de geração de orçamentos usada em produção no sistema.

About

API teste para geração de orçamentos em PDF

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published