Ganaderia
La ruta base para todas sera api/livestock
APIS
api/livestock/herd
api/livestock/herd/categories
api/livestock/transaction/exit
api/livestock/transaction/exit/types
api/livestock/transaction/paddock
Docu
api/livestock/herd/categories
Esta es simple, es un GET Trae todas las categorias de ganado
{
"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"
}
]
}
api/livestock/herd
Esta es la api principal de un rodeo.
Metodos expuestos:
- GET
- POST
- PATCH
- DELETE
GET
No hay magia todavia, es un good old get
{
"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": "Segundo test apis",
"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
Este post es simple, recibe los parametros medio ya definidos, no cambia mucho
{
"type_id": 1,
"animal_count": 2,
"paddock_uuid": null,
"weight": 500.43,
"weight_unit": "kg",
"herd_name": "Segundo test apis",
"field_id": 2343
}
No pasa nada si mandas mas info, (mobile podes mandar fruta no pasa nada) eso son lo que usa para crear un rodeo. Si les sirve les responde el rodeo creado con su id o uuid en caso de no ingresarlos Si mandas el paddock uuid, es obligatorio para permisos, tmb tenes que mandar el field de dicha parcela, si no rompe
PATCH
URL api/livestock/herd/<uuid:herd_uuid>
Aca es un poco mas tranquii que lo demas aca un ejemplo de todo lo que recibe
{
"type_id": 3,
"herd_name": "Segundo test apis",
"transaction_uuid":"uuid",
"transaction_date":"date de la transaction",
"new_animals": {
"new_animals_count": 2,
"new_animals_weight": 2.3,
"new_animals_weight_unit": "Kg"
}
}
Los transaction SON PARA MOBILE si no se manda no pasa naranja El new animal genera para que ingresen nuevos animales al rodeo y una transacion
delete
URL api/livestock/herd/<uuid:herd_uuid>
Simplemente lo borra
api/livestock/transaction/exit/types
Facil todos los tipos de salida
{
"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"
}
]
}
api/livestock/transaction/exit
POST
Aca es para salida de ganado
{
"destination_type":1,
"animal_count":2,
"weight": 1000,
"weight_unit":"Kg",
"origin_herd_uuid": "22184736-dc13-4636-8d33-4eaba40af812",
"destination_herd_uuid": "805802f5-84c1-4ed0-a3e3-1a9afad18cfd",
"transaction_uuid":"uuid",
"transaction_date":"date de la transaction",
}
Si mandas el tipo de destination_type que es salida y no mandas destination_herd_uuid, te rompo, si lo mandas con otro tipo de desetination no pasa nada
api/livestock/transaction/paddock
POST
{
"origin_herd_uuid": "22184736-dc13-4636-8d33-4eaba40af812",
"origin_paddock_uuid": "789af56d-70a7-4120-96b5-aa02874d7eaa",
"destination_paddock_uuid": "081abc1a-aa03-44c5-977d-a9163f5e1d4f",
"transaction_date": "2023-05-18",
"weight": 203,
"weight_unit":"kg"
}
api/livestock/paddock or api/livestock/paddock/uuid:paddock_uuid
GET
{
"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
}
]
}
Esto te devuelve el get
Podes pasar field_id o field_uuid como argumento
POST
En el post se debe mandar los siguientes datos
{
"field_id": 258388,
"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"
}
Todos deberian ser obligatorios, por el momento Chequeate que el shape es un string del poligono, es como mandan en zonas de gestion por ejemplo
PATCH (ACA ES CON EL UUID EN EL PATH)
Aca aceptan dos cosas
{
"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))"
}
El name y el shape, podes mandar ambos o solo 1
DELETE (ACA ES CON EL UUID EN EL PATH)
Nada lo borra perri