Pular para conteúdo

Entidades do Dominio

Descricao completa das entidades do sistema TepConfina.

BaseEntity

Classe base herdada por todas as entidades do sistema.

Campo Tipo Descricao
Id Guid Identificador unico da entidade
CreatedAt DateTime Data de criacao do registro
UpdatedAt DateTime? Data da ultima atualizacao
IsDeleted bool Flag de soft delete (exclusao logica)
CreatedBy string? Usuario que criou o registro
UpdatedBy string? Usuario que fez a ultima atualizacao

Soft Delete

O sistema utiliza exclusao logica via IsDeleted. Registros nunca sao removidos fisicamente do banco. Um global query filter no EF Core garante que registros deletados nao aparecem em consultas.

Tenant

Representa uma organizacao/fazenda no sistema multi-tenant.

Campo Tipo Descricao
Nome string Nome da organizacao
Slug string Identificador unico amigavel (URL-safe)

Lote

Entidade central do sistema. Representa um lote de animais em confinamento.

Campo Tipo Descricao
Nome string Nome identificador do lote
ProdutorId Guid Referencia ao produtor
Propriedade string Nome da propriedade rural
Cidade string Cidade da propriedade
Frigorifico string Frigorifico de destino
Raca string Raca predominante dos animais
DataEntrada DateTime Data de entrada dos animais
DataPrevistaSaida DateTime Data prevista para saida/abate
QuantidadeAnimais int Quantidade total de animais
PesoBrutoEntrada decimal Peso bruto total na entrada (kg)
PesoLiquidoEntrada decimal Peso liquido total na entrada (kg)
PesoMedioEntrada decimal Peso medio por animal na entrada (kg)
ValorCabeca decimal Valor pago por cabeca (R$)
ValorArroba decimal Valor de referencia da arroba (R$)
Status enum Ativo ou Fechado
PesoSaida decimal? Peso total na saida (kg) - ao fechar lote
RendimentoCarcaca decimal? Percentual de rendimento de carcaca
GanhoArroba decimal? Ganho em arrobas - calculado ao fechar
DataSaida DateTime? Data efetiva de saida/abate

Animal

Representa um animal individual dentro de um lote.

Campo Tipo Descricao
Identificacao string Numero de identificacao (brinco/chip)
LoteId Guid Referencia ao lote
Raca string Raca do animal
Sexo string Sexo do animal (Macho/Femea)
DataNascimento DateTime? Data de nascimento estimada
PesoEntrada decimal Peso na entrada do confinamento (kg)
DataEntrada DateTime Data de entrada no confinamento
Status enum Ativo, Morto ou Vendido
DataMorte DateTime? Data da morte (se aplicavel)
CausaMorte string? Causa da morte
DataVenda DateTime? Data da venda/abate
PesoVenda decimal? Peso na venda (kg)
ValorVenda decimal? Valor recebido na venda (R$)

Pesagem

Registro de pesagem coletiva de um lote.

Campo Tipo Descricao
LoteId Guid Referencia ao lote
DataPesagem DateTime Data da pesagem
PesoTotal decimal Peso total dos animais pesados (kg)
QuantidadeAnimais int Quantidade de animais pesados
PesoMedio decimal Peso medio por animal (kg)
GMD decimal Ganho medio diario calculado (kg/dia)
Observacoes string? Observacoes sobre a pesagem

PesagemAnimal

Registro de pesagem individual de um animal.

Campo Tipo Descricao
AnimalId Guid Referencia ao animal
DataPesagem DateTime Data da pesagem
Peso decimal Peso do animal (kg)
GMD decimal Ganho medio diario individual (kg/dia)
Observacoes string? Observacoes sobre a pesagem

Racao

Registro de racao comprada e estoque.

Campo Tipo Descricao
Nome string Nome/tipo da racao
Fornecedor string Nome do fornecedor
DataCompra DateTime Data da compra
QuantidadeKg decimal Quantidade comprada (kg)
PrecoUnitario decimal Preco por kg (R$)
ValorTotal decimal Valor total da compra (R$)
EstoqueAtualKg decimal Estoque disponivel atual (kg)

ConsumoRacao

Registro de consumo diario de racao por lote.

Campo Tipo Descricao
LoteId Guid Referencia ao lote
RacaoId Guid Referencia a racao utilizada
DataConsumo DateTime Data do consumo
QuantidadeKg decimal Quantidade consumida (kg)
QuantidadeAnimais int Quantidade de animais que consumiram
ConsumoPerCapita decimal Consumo medio por animal (kg)

AplicacaoMedicamento

Registro de aplicacao de medicamentos/tratamentos.

Campo Tipo Descricao
LoteId Guid Referencia ao lote
Nome string Nome do medicamento
Fornecedor string Fornecedor do medicamento
QuantidadeAnimais int Animais que receberam o medicamento
ValorUnitario decimal Valor por dose (R$)
ValorTotal decimal Valor total gasto (R$)
DataAplicacao DateTime Data da aplicacao

Produtor

Cadastro de produtores rurais.

Campo Tipo Descricao
Nome string Nome completo do produtor
CPF_CNPJ string CPF ou CNPJ do produtor
Telefone string Telefone de contato
Email string Email de contato
Endereco string Endereco completo
Cidade string Cidade
Estado string UF do estado

CompraLote

Múltiplas compras vinculadas a um mesmo lote, com rateio proporcional do custo por animal. Permite que um lote seja formado por várias entradas em datas/preços diferentes.

Campo Tipo Descricao
LoteId Guid Referência ao lote
DataCompra DateTime Data da compra
QuantidadeAnimais int Animais comprados nesta operação
PesoTotal decimal Peso total dos animais comprados (kg)
ValorTotal decimal Valor total pago (R$)
ValorCabeca decimal Valor por cabeça (R$)
ValorArroba decimal Valor por arroba (R$)
Vendedor string? Nome do vendedor
Frete decimal? Valor do frete (R$)
Observacoes string? Observações

CustoAnimal

Custo individual rateado por animal a partir das CompraLotes do lote (proporcional ao peso de entrada). Permite calcular margem real de cada animal vendido.

Campo Tipo Descricao
AnimalId Guid Referência ao animal
LoteId Guid Referência ao lote
CustoCompra decimal Custo de aquisição rateado (R$)
CustoOperacionalAcc decimal Acumulado de ração+med+suplementos+etc

PrecoMercado

Tabela de cotações legacy que alimenta os cards de preço do dashboard (Preço atual, Média 7d, Média 30d). 1 registro por dia/fonte.

Campo Tipo Descricao
Fonte string TRADINGVIEW, BRAPI, MANUAL (legacy: CEPEA, B3)
Indice string Símbolo do contrato (BGI1!, BBOI11, etc)
PrecoArroba decimal Preço (R$) — semântica varia por fonte
Data DateTime Data da cotação
Variacao decimal? Variação absoluta vs. anterior
VariacaoPercentual decimal? Variação percentual

Semântica do PrecoArroba

Quando Fonte=TRADINGVIEW/Indice=BGI1!, o valor é o preço real da arroba (~R$ 360). Quando Fonte=BRAPI/Indice=BBOI11, é a cota do ETF (~R$ 11), não a arroba. O frontend trata isso e exibe label apropriado.

MarketContract

Contratos disponíveis no provider ativo. Sincronizado a cada ciclo do MarketIngestionHostedService.

Campo Tipo Descricao
Symbol string Símbolo genérico (BOI)
ContractCode string Código do contrato (BGI1!, BGIK26)
Description string? Descrição amigável
ExpirationDate DateTime? Vencimento (null para contratos contínuos)
IsActive bool Se está sendo coletado

MarketQuote

Cotação atual por contrato. Provider-agnóstico (campo Source indica origem).

Campo Tipo Descricao
Symbol string Símbolo (BOI)
ContractCode string? Código do contrato
Price decimal Último preço
OpenPrice decimal? Abertura do dia
HighPrice decimal? Máxima do dia
LowPrice decimal? Mínima do dia
VariationPercent decimal? Variação % vs. fechamento anterior
Volume decimal? Volume
Source string tradingview, brapi, stonex, mock
QuoteTimestamp DateTime Timestamp da coleta

MarketCandle

Candle OHLC para gráfico. Chave única: Symbol + ContractCode + Timeframe + CandleTime.

Campo Tipo Descricao
Symbol string Símbolo (BOI)
ContractCode string? Código do contrato
Timeframe string 1m, 5m, 15m, 1h, 4h, 1d, 1w
Open decimal Abertura
High decimal Máxima
Low decimal Mínima
Close decimal Fechamento
Volume decimal? Volume
Source string Provider que coletou
CandleTime DateTime Início do candle

User

Usuarios do sistema.

Campo Tipo Descricao
Nome string Nome completo do usuario
Email string Email (usado para login)
PasswordHash string Hash BCrypt da senha
Role string Papel do usuario (Admin, User)
IsActive bool Se o usuario esta ativo
TenantId Guid Referencia ao tenant
RefreshToken string? Token de refresh JWT atual

AlertaPreco

Alertas de preco configurados pelo usuario.

Campo Tipo Descricao
UserId Guid Referencia ao usuario
Produto string Produto monitorado (Boi Gordo, etc)
PrecoAlvo decimal Preco que dispara o alerta (R$/@)
Tipo enum Acima ou Abaixo do preco alvo
Ativo bool Se o alerta esta ativo

Notificacao

Notificacoes enviadas aos usuarios.

Campo Tipo Descricao
UserId Guid Referencia ao usuario
Titulo string Titulo da notificacao
Mensagem string Conteudo da notificacao
Tipo string Tipo (Alerta, Info, Aviso)
Lida bool Se a notificacao foi lida
DataEnvio DateTime Data e hora do envio

AuditLog

Registro de auditoria de todas as operacoes.

Campo Tipo Descricao
UserId Guid Usuario que realizou a acao
EntityName string Nome da entidade afetada
EntityId Guid ID da entidade afetada
Action string Acao realizada (Create, Update, Delete)
OldValues string? Valores anteriores em JSON
NewValues string? Novos valores em JSON
Timestamp DateTime Data e hora da operacao

DeviceToken

Tokens de dispositivos moveis para push notifications.

Campo Tipo Descricao
UserId Guid Referencia ao usuario
Token string Token FCM do dispositivo
Platform string Plataforma (Android, iOS)

Entidades de operação ampliada

Suplemento e ConsumoSuplemento

Suplementos minerais/vitamínicos cadastrados como insumos separados da ração principal.

Suplemento

Campo Tipo Descricao
Nome string Nome do suplemento
Tipo string Mineral, Vitamina, Aditivo
Fornecedor string? Fornecedor
PrecoUnitarioKg decimal Custo por kg (R$)

ConsumoSuplemento

Campo Tipo Descricao
LoteId Guid Lote
SuplementoId Guid Suplemento
DataConsumo DateTime Data
QuantidadeKg decimal Quantidade consumida

Arrendamento

Custo de pastagem ou área de confinamento arrendada.

Campo Tipo Descricao
LoteId Guid Lote
Proprietario string Nome do proprietário
DataInicio DateTime Início do contrato
DataFim DateTime Fim do contrato
ValorMensal decimal Valor mensal pago (R$)
ValorTotal decimal Valor total acumulado (R$)
Observacoes string? Detalhes do contrato

EstoqueInsumo

Controle de estoque para ração, suplementos e medicamentos.

Campo Tipo Descricao
Nome string Nome do insumo
Categoria string Racao, Suplemento, Medicamento
EstoqueAtual decimal Quantidade atual em estoque
Unidade string kg, g, un, L
EstoqueMinimo decimal? Disparo de alerta quando abaixo
PrecoUltimaCompra decimal? Custo de referência

OutrosGastos

Despesas operacionais diversas (frete, energia, mão de obra, etc).

Campo Tipo Descricao
LoteId Guid? Lote (null para custo geral do tenant)
Categoria string Frete, Energia, MaoDeObra, etc
Descricao string Descrição da despesa
Valor decimal Valor (R$)
DataDespesa DateTime Data

ProtocoloSanitario e AplicacaoProtocolo

Calendário sanitário recorrente por lote (ex: vacinação a cada 60 dias).

ProtocoloSanitario

Campo Tipo Descricao
Nome string Nome do protocolo
Tipo string Vacina, Vermífugo, Mineral, etc
FrequenciaDias int A cada N dias
DiasAposEntrada int? Primeira aplicação após entrada

AplicacaoProtocolo

Campo Tipo Descricao
LoteId Guid Lote
ProtocoloId Guid Protocolo aplicado
DataAplicacao DateTime Data efetiva
QuantidadeAnimais int Animais que receberam
ValorTotal decimal Custo total (R$)
Observacoes string? Reações, lote do produto, etc

ConferenciaVisual

Resultado de análise de imagem do lote via Claude Vision (BCS — Body Condition Score) e detector TF-Lite (contagem de cabeças).

Campo Tipo Descricao
LoteId Guid Lote
ImagemUrl string URL da imagem no S3
BcsMedio decimal? Body Condition Score 1–9 (Claude)
CabecasDetectadas int? Contagem TF-Lite
ResumoIA string? Texto descritivo gerado
DataAnalise DateTime Quando foi processada

NegocioReportado (Mercado Colaborativo)

Negociações reportadas pelos próprios produtores (crowdsourced) que alimentam o mapa de preços por UF e a referência de margem real.

Campo Tipo Descricao
TenantId Guid Quem reportou
DataNegocio DateTime Data da venda
UF string Estado (2 letras)
Cidade string Cidade
QuantidadeAnimais int Animais vendidos
PrecoArroba decimal Preço/@ negociado (R$)
Frigorifico string? Frigorífico/comprador
Observacoes string? Detalhes (raça, peso médio, etc)

HedgeOperacao

Operações de hedge (vendas de contratos BGI) registradas pelo usuário para acompanhamento de P&L.

Campo Tipo Descricao
LoteId Guid? Lote associado (opcional)
DataOperacao DateTime Data da venda do contrato
ContractCode string Contrato vendido (BGIK26 etc)
Contratos int Quantos contratos vendidos
PrecoTrava decimal Preço de venda do contrato (R$/@)
Observacoes string? Estratégia, modo, etc

ImportacaoExcel

Histórico de importações de planilha (pesagens, animais, lotes históricos).

Campo Tipo Descricao
TipoEntidade string Pesagem, Animal, LoteHistorico
ArquivoNome string Nome do arquivo enviado
Linhas int Linhas totais processadas
Sucesso int Linhas importadas com sucesso
Erros int Linhas que falharam
LogJson string? Detalhamento dos erros (JSON)
UserId Guid Quem importou
DataImportacao DateTime Quando