Skip to content

GraphQL — Queries e Mutations

André Bandeira edited this page Mar 30, 2026 · 5 revisions

Observação: operações autenticadas exigem o header:

Authorization: Bearer <token>
  1. Login
mutation Login($email: String!, $password: String!) {
  login(email: $email, password: $password) {
    accessToken
  }
}

Resposta:

{
  "data": {
    "login": {
      "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
    }
  }
}

Ver dados do produtor com seus clientes:

query {
  me {
    id
    nome
    email
    clientes {
      id
      nome
      email
    }
  }
}
  1. Criar Cliente
mutation CreateCliente($input: CreateClienteInput!) {
  createCliente(input: $input) {
    id
    nome
    email
    telefone
    ativo
    createdAt
  }
}

Listar Clientes

query ListClientes {
  listClientes {
    id
    nome
    email
    telefone
    ativo
    createdAt
  }
}

Listar Clientes com Filtros (Futuro)

query ListClientesFiltrados {
  listClientes(nome: "João", ativo: true) {
    id
    nome
    email
  }
}
  1. Criar Talhão
mutation CreateTalhao($input: CreateTalhaoInput!) {
  createTalhao(input: $input) {
    id
    clienteId
    nome
    area
    localizacao
    ativo
    createdAt
  }
}

Variables:

{
  "input": {
    "clienteId": "ID_DO_CLIENTE",
    "nome": "Talhão A1",
    "area": 2.5,
    "localizacao": "Sítio Bela Vista"
  }
}

HTTP Header (Playground / Apollo):

{
  "Authorization": "Bearer <seu-token-aqui>"
}
  1. Listar Talhões por cliente
query ListTalhoes($clienteId: String!, $ativo: Boolean) {
  listTalhoes(clienteId: $clienteId, ativo: $ativo) {
    id
    clienteId
    nome
    area
    localizacao
    ativo
    createdAt
    plantios {
      id
      cultura
      dataPlantio
      fase
    }
  }
}

Variables:

{
  "clienteId": "ID_DO_CLIENTE",
  "ativo": true
}
  1. Criar Plantio
mutation CreatePlantio($input: CreatePlantioInput!) {
  createPlantio(input: $input) {
    id
    cultura
    dataPlantio
    fase
  }
}

Variables:

{
  "input": {
    "talhaoId": "ID_DO_TALHAO",
    "clienteId": "ID_DO_CLIENTE",
    "variedade": "Maracujá Roxo",
    "dataPlantio": "2025-01-15",
    "quantidadeMudas": 200
  }
}
  1. Avançar fase do plantio
mutation AdvanceFasePlantio($input: AdvanceFasePlantioInput!) {
  advanceFasePlantio(input: $input) {
    id
    fase
  }
}

Variables:

{
  "input": {
    "talhaoId": "ID_DO_CLIENTE",
    "clienteId": "ID_DO_CLIENTE",
    "plantioId": "ID_DO_PLANTIO",
    "novaFase": "DESENVOLVIMENTO"
  }
}
  1. Registrar colheita
mutation RegisterColheita($input: RegisterColheitaInput!) {
  registerColheita(input: $input) {
    id
    data
    quantidade
  }
}
  1. Listar colheitas por plantio
query ListColheitas($plantioId: String!) {
  listColheitas(plantioId: $plantioId) {
    id
    data
    quantidade
  }
}

Variables:

{
 { "plantioId": "ID_DO_PLANTIO" }
}

Observação: use variáveis e o playground para testar com `Authorization` quando necessário.

Clone this wiki locally