Ganadería
Índice
Introducción
Esta documentación describe la API relacionada con la gestión de ganado y parcelas de campo. La API proporciona endpoints para operaciones como la gestión de rodeos, transacciones de ganado, tipos de transacciones y gestión de parcelas de campo.
Se requiere tener activado el módulo de livestock en el claimset de la extensión
API
Parcelas
La entidad de parcela
es la unidad espacial que contiene ganado. Esta entidad es necesaria para indicar la división del lote.
Endpoint: /livestock/paddock
GET
Descripción
Obtiene todas las parcelas o una parcela específica
Parámetros de entrada
Puede enviarse en el PATH el parámetro paddock_uuid
(/livestock/paddock/<paddock_uuid>
). Si no se envía se obtienen todas las parcelas.
Se puede filtrar por field_id
para obtener las parcelas de un lote específico.
Respuesta
{
"data": [
{
"paddock_id": 5,
"paddock_uuid": "1125a934-71b6-4d17-9a1a-a5d9369805a2",
"name": "Parcela 1 test",
"creation_ts": "2023-05-22",
"shape": "POLYGON((-59.6969175338745 -34.1914642334418,-59.6950721740723 -34.1924581727268,-59.6953725814819 -34.193487597494,-59.6972608566284 -34.1941620413899,-59.6992778778076 -34.1938070715907,-59.698805809021 -34.1923871774521,-59.6976470947266 -34.1918547109865,-59.6969175338745 -34.1914642334418))",
"area": 7.57465980374813
},
{
"paddock_id": 3,
"paddock_uuid": "26ce6e4c-d3f0-4c67-89e7-f4ec2b3bdc54",
"name": "Parcela 1 test (patch 2)",
"creation_ts": "2023-05-22",
"shape": "POLYGON((-59.6969175338745 -34.1914642334418,-59.6950721740723 -34.1924581727268,-59.6953725814819 -34.193487597494,-59.6972608566284 -34.1941620413899,-59.6992778778076 -34.1938070715907,-59.698805809021 -34.1923871774521,-59.6976470947266 -34.1918547109865,-59.6969175338745 -34.1914642334418))",
"area": 3.77398852224927
}
]
}
POST
Descripción
Crea una nueva parcela en el lote.
Parámetros de entrada
Esquema:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Crear Parcela",
"type": "object",
"properties": {
"field_id": {
"type": "number"
},
"shape": {
"type": "string",
"description": "WKT format"
},
"date": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string"
}
},
"required": [
"field_id",
"shape",
"date",
"name"
]
}
Ejemplo:
{
"field_id": 123456,
"shape":"POLYGON((-59.69691753387451 -34.19146423344178,-59.695072174072266 -34.19245817272681,-59.69537258148192 -34.19348759749397,-59.69726085662841 -34.19416204138989,-59.69927787780762 -34.19380707159075,-59.698805809020996 -34.19238717745208,-59.69764709472656 -34.19185471098653,-59.69691753387451 -34.19146423344178))",
"date": "2023-05-22T15:27:09.147Z",
"name":"Parcela 1 test"
}
PATCH
Descripción
Modifica una parcela creada
Parámetros de entrada
Debe enviarse paddock_uuid
en el path (/livestock/paddock/<paddock_uuid>
)
Esquema:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Modificar Parcela",
"type": "object",
"anyOf": [
{
"required": ["name"]
},
{
"required": ["shape"]
}
],
"properties": {
"name": {
"type": "string"
},
"shape": {
"type": "string",
"description": "WKT format"
}
}
}
Ejemplo:
{
"name":"Parcela 1 test (patch 2)",
"shape":"POLYGON((-59.69691753387451 -34.19146423344178,-59.695072174072266 -34.19245817272681,-59.69537258148192 -34.19348759749397,-59.69726085662841 -34.19416204138989,-59.69927787780762 -34.19380707159075,-59.698805809020996 -34.19238717745208,-59.69764709472656 -34.19185471098653,-59.69691753387451 -34.19146423344178))"
}
DELETE
Descripción
Elimina una parcela.
Parámetros de entrada
Debe enviarse paddock_uuid
en el path (/livestock/paddock/<paddock_uuid>
)
Rodeo
La entidad rodeo
corresponde a la unidad de ganado con la que se está trabajando.
Endpoint: /livestock/herd
GET
Descripción
Obtiene información de todos los rodeos.
Respuesta
Ejemplo:
{
"data": [
{
"herd_name": "test",
"farm_uuid": "ce33ffaf-ddb0-411b-ab1a-2f2f7c79c2e9",
"weight": 1500.0,
"type_id": 2,
"paddock_id": 1,
"farm_id": 72560,
"field_id": 258388,
"herd_uuid": "805802f5-84c1-4ed0-a3e3-1a9afad18cfd",
"field_uuid": "bf74402d-4721-49f9-8328-7313b02b4dfc",
"date_of_last_transaction": null,
"animal_count": 3,
"herd_id": 1,
"weight_unit": "Kg"
},
{
"herd_name": "otro test",
"farm_uuid": "ce33ffaf-ddb0-411b-ab1a-2f2f7c79c2e9",
"weight": 9000.0,
"type_id": 3,
"paddock_id": 2,
"farm_id": 72560,
"field_id": 258388,
"herd_uuid": "22184736-dc13-4636-8d33-4eaba40af812",
"field_uuid": "bf74402d-4721-49f9-8328-7313b02b4dfc",
"date_of_last_transaction": null,
"animal_count": 8,
"herd_id": 3,
"weight_unit": "Kg"
}
]
}
POST
Descripción
Crea un nuevo rodeo.
Parámetros de entrada:
A continuación se muestra el esquema necesario para crear un rodeo. En caso de que no se defina el parámetro herd_uuid
del rodeo, se creará uno y se devolverá en la respuesta del POST.
Se deben enviar los parámetros paddock_uuid
y field_id
.
Ver Categorías de rodeo para conocer el parámetro type_id
.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Crear Rodeo",
"type": "object",
"properties": {
"type_id": {
"type": "number"
},
"animal_count": {
"type": "number"
},
"paddock_uuid": {
"type": [ "string", "null" ]
},
"weight": {
"type": "number"
},
"weight_unit": {
"type": "string"
},
"herd_name": {
"type": "string"
},
"field_id": {
"type": "number"
}
},
"required": [
"type_id",
"animal_count",
"weight",
"weight_unit",
"herd_name",
"field_id",
"paddock_uuid"
]
}
PATCH
Descripción
Modifica un rodeo.
Parámetros de entrada
Debe enviarse el parámetro herd_uuid
en el path (/livestock/herd/<herd_uuid>
)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Modificar Rodeo",
"type": "object",
"properties": {
"type_id": {
"type": "number"
},
"herd_name": {
"type": "string"
},
"new_animals": {
"type": "object",
"properties": {
"new_animals_count": {
"type": "number"
},
"new_animals_weight": {
"type": "number"
},
"new_animals_weight_unit": {
"type": "string"
}
},
"required": [
"new_animals_count",
"new_animals_weight",
"new_animals_weight_unit"
]
}
},
"required": [
"type_id",
"herd_name",
"new_animals"
]
}
DELETE
Descripción
Elimina un rodeo.
Parámetros de entrada
Debe enviarse el parámetro herd_uuid
en el path (/livestock/herd/<herd_uuid>
)
Cambio de parcela
Se utiliza para indicar el cambio de parcela de un Rodeo.
Endpoint: /livestock/transaction/paddock
POST
Descripción
Cambia de parcela un Rodeo.
Parámetros de entrada
En el caso de que también se cambie a una parcela de otro lote se debe enviar el destination field, que corresponde al id del lote destino.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Cambio de parcela",
"type": "object",
"properties": {
"herd_name": {
"type": "string"
},
"herd_category": {
"type": "integer"
},
"max_count": {
"type": "integer"
},
"animal_count": {
"type": "integer"
},
"transaction_date": {
"type": "string",
"format": "date-time"
},
"weight": {
"type": "number"
},
"weight_unit": {
"type": "string"
},
"origin_herd_uuid": {
"type": "string"
},
"origin_paddock_uuid": {
"type": "string"
},
"destination_field": {
"type": "string"
},
"destination_paddock_uuid": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": ["origin_herd_uuid", "origin_paddock_uuid", "destination_paddock_uuid", "transaction_date"]
}
Categorías de Rodeo
Endpoint: /livestock/herd/categories
GET
Descripción
Obtiene todas las categorías de ganado.
Respuesta
{
"data": [
{
"id": 1,
"name": "Terneros"
},
{
"id": 2,
"name": "Terneras"
},
{
"id": 3,
"name": "Novillito"
},
{
"id": 4,
"name": "Novillos"
},
{
"id": 5,
"name": "Vaquillonas"
},
{
"id": 6,
"name": "Vacas Invernada"
},
{
"id": 7,
"name": "Vacas Cría"
},
{
"id": 8,
"name": "Toros"
}
]
}
Salidas
[Explicar que es Salidas]
Endpoint: /livestock/transaction/exit
POST
Descripción
Ingresa una salida para un ganado
Parámetros de entrada
En caso de enviar el parámetro destination_type
igual a Salida hacia otro rodeo se debe enviar el parámetro destination_herd_uuid
igual a un uuid de rodeo destino.
Ver Tipos de salida para conocer el parámetro destination_type
.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Ingresar Salida de Ganado",
"type": "object",
"required": [
"destination_type",
"animal_count",
"weight",
"weight_unit",
"origin_herd_uuid",
"destination_herd_uuid",
"transaction_uuid",
"transaction_date"
],
"properties": {
"destination_type": {
"type": "integer"
},
"animal_count": {
"type": "integer"
},
"weight": {
"type": "integer"
},
"weight_unit": {
"type": "string"
},
"origin_herd_uuid": {
"type": "string",
"format": "uuid"
},
"destination_herd_uuid": {
"type": "string",
"format": "uuid"
},
"transaction_uuid": {
"type": "string",
"format": "uuid"
},
"transaction_date": {
"type": "string",
"format": "date-time"
}
}
}
Tipos de salida
Un ganado puede tener diferentes tipos de salida de un rodeo. Para esto se definen los tipos a utilizar para indicar una salida.
Endpoint: /livestock/transaction/exit/types
GET
Descripción
Obtiene los tipos de salida existentes
Ejemplo de respuesta
{
"data": [
{
"id": 3,
"type": "Faena"
},
{
"id": 2,
"type": "Salida hacia otro rodeo"
},
{
"id": 4,
"type": "Venta"
},
{
"id": 5,
"type": "Cambio de campo"
},
{
"id": 6,
"type": "Robo"
},
{
"id": 7,
"type": "Otro"
},
{
"id": 1,
"type": "Muertes"
}
]
}