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

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