🏢  Descrição Geral do Sistema
Este banco de dados foi projetado para gerenciar operações agrícolas completas, desde o cadastro de produtores rurais até o acompanhamento detalhado de plantios e colheitas. O modelo permite rastreabilidade completa do processo produtivo agrícola.
🗂 ️ Esquema do Banco de Dados - Análise Detalhada
TABELA: producers (Produtores Rurais)
Propósito: Armazena informações completas dos agricultores ou empresas produtoras.
Estrutura e Campos:
- 
id(SERIAL) - Identificador único do produtor (Chave Primária) - 
name(VARCHAR(255)) - Nome completo ou razão social do produtor - 
document(VARCHAR(20)) - Documento de identificação (CPF/CNPJ) - 
phone(VARCHAR(20)) - Telefone de contato - 
email(VARCHAR(255)) - E-mail - 
zipCode(VARCHAR(20)) - CEP da localização - 
city(VARCHAR(180)) - Cidade de residência/operação - 
street(VARCHAR(255)) - Endereço - 
number(VARCHAR(20)) - Número do endereço - 
complement(VARCHAR(255)) - Complemento do endereço - 
createdAt(TIMESTAMP) - Data e hora de criação do registro - 
updatedAt(TIMESTAMP) - Data e hora da última atualização 
Relacionamentos:
- Um produtor pode ter múltiplos produtos (
products) - Um produtor pode gerenciar múltiplas safras (
harvests) - Um produtor pode possuir múltiplas áreas de cultivo (
areas) 
TABELA: products (Produtos Agrícolas)
Propósito: Cataloga os diferentes tipos de culturas ou produtos que podem ser cultivados.
Estrutura e Campos:
- 
id(SERIAL) - Identificador único do produto - 
name(VARCHAR(180)) - Nome do produto (milho, soja, trigo, etc.) - 
producerId(INT) - Referência ao produtor dono do produto - 
createdAt(TIMESTAMP) - Timestamp de criação - 
updatedAt(TIMESTAMP) - Timestamp de atualização 
Relacionamentos:
- Pertence a um produtor (
producers) - Pode ser plantado em múltiplas ocasiões (
plantings) 
TABELA: harvests (Safras)
Propósito: Gerencia os ciclos de safra ou temporadas agrícolas.
Estrutura e Campos:
- 
id(SERIAL) - Identificador único da safra - 
name(VARCHAR(180)) - Nome descritivo da safra - 
cycle(VARCHAR(50)) - Ciclo ou temporada (ex: "2024-Verão") - 
startDate(DATE) - Data de início do ciclo - 
endDate(DATE) - Data de finalização estimada - 
status(harvest_status) - Status atual (provavelmente ENUM: planned, in_progress, completed, cancelled) - 
producerId(INT) - Produtor associado à safra - 
createdAt(TIMESTAMP) - Data de criação - 
updatedAt(TIMESTAMP) - Data de atualização 
Relacionamentos:
- Pertence a um produtor (
producers) - Contém múltiplos plantios (
plantings) 
TABELA: areas (Áreas de Cultivo)
Propósito: Gerencia os talhões ou terrenos específicos onde são realizados os cultivos.
Estrutura e Campos:
- 
id(SERIAL) - Identificador único da área - 
name(VARCHAR(255)) - Nome descritivo da área - 
polygon(GEOMETRY) - Dados geométricos que definem o formato da área - 
areaM2(DECIMAL(65,30)) - Superfície total em metros quadrados - 
color(VARCHAR(10)) - Cor para representação visual em mapas - 
producerId(INT) - Produtor proprietário da área - 
soilTypeId(INT) - Tipo de solo (FK para soil_types) - 
irrigationTypeId(INT) - Tipo de sistema de irrigação (FK para irrigation_types) - 
isActive(BOOLEAN) - Indicador de área ativa/inativa - 
description(TEXT) - Descrição adicional da área - 
createdAt(TIMESTAMP) - Data de criação - 
updatedAt(TIMESTAMP) - Data de atualização 
Relacionamentos:
- Pertence a um produtor (
producers) - Tem um tipo de solo específico (
soil_types) - Utiliza um tipo de irrigação (
irrigation_types) 
TABELA: AreaToPlanting (Relação Área-Plantio)
Propósito: Tabela de relacionamento entre áreas e plantios (provável tabela associativa).
Estrutura e Campos:
- 
A(INT) - Possível referência à área ou coordenada - 
B(INT) - Possível referência ao plantio ou coordenada 
Observação: Esta tabela precisa de melhor definição de propósito e campos.
TABELA: soil_types (Tipos de Solo)
Propósito: Catálogo de classificações de solo para caracterizar as áreas de cultivo.
Estrutura:
- 
id(SERIAL) - Identificador único do tipo de solo - 
name(VARCHAR(180)) - Nome do tipo (argiloso, arenoso, etc.) - 
description(TEXT) - Características e propriedades do solo 
TABELA: irrigation_types (Tipos de Irrigação)
Propósito: Catálogo de sistemas de irrigação disponíveis.
Estrutura:
- 
id(SERIAL) - Identificador único do tipo de irrigação - 
name(VARCHAR(180)) - Nome do sistema (gotejamento, aspersão, etc.) - 
description(TEXT) - Descrição do método de irrigação 
TABELA: plantings (Plantios)
Propósito: Registra as instâncias específicas de cultivo dentro das safras.
Estrutura e Campos:
- 
id(SERIAL) - Identificador único do plantio - 
name(VARCHAR(255)) - Nome descritivo da cultura - 
plantingDate(DATE) - Data real do plantio - 
plantingEndDate(DATE) - Data de finalização do plantio - 
expectedHarvestDate(DATE) - Data estimada da colheita - 
quantityPlanted(FLOAT) - Quantidade plantada (unidades/hectares) - 
quantityHarvested(FLOAT) - Quantidade realmente colhida - 
harvestId(INT) - Safra à qual pertence - 
productId(INT) - Produto que está sendo cultivado - 
createdAt(TIMESTAMP) - Data de criação - 
updatedAt(TIMESTAMP) - Data de atualização 
Relacionamentos:
- Pertence a uma safra (
harvests) - Cultiva um produto específico (
products) 
🔄  Fluxo de Operações do Sistema
Passo 1: Cadastro do Produtor
- Cria-se um registro em 
producerscom todos os dados pessoais e de localização - O sistema gera automaticamente os timestamps de criação
 
Passo 2: Configuração da Infraestrutura
- Registram-se os tipos de solo disponíveis em 
soil_types - Catalogam-se os sistemas de irrigação em 
irrigation_types - O produtor define suas áreas de cultivo em 
areas 
Passo 3: Planejamento das Safras
- Cria-se uma nova safra em 
harvestscom ciclo e datas estimadas - Definem-se os produtos a cultivar em 
products 
Passo 4: Execução dos Plantios
- Para cada área e produto, criam-se registros em 
plantings - Registram-se datas reais de plantio e quantidades
 - Atualizam-se as datas de colheita esperadas
 
Passo 5: Acompanhamento e Colheita
- Atualizam-se as quantidades colhidas em 
plantings - Modifica-se o status das safras em 
harvests - O sistema mantém rastreabilidade completa do processo
 
📈  Métricas e Análises Disponíveis
Produtividade:
- Comparação 
quantityPlantedvsquantityHarvestedpor produtor/safra - Eficiência por tipo de solo e sistema de irrigação
 
Planejamento:
- Acompanhamento de datas estimadas vs reais
 - Análise de ciclos de cultivo
 
Gestão de Terrenos:
- Distribuição de áreas ativas/inativas
 - Otimização de uso do solo por produtor
 
