Saltar al contenido principal

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>)

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"
}
]
}