# Ciclo operativo de depositos de bidones

`ContainerDepositService` centraliza las transiciones de un deposito:

- `charge`: cobra el importe configurado y pasa de `pending` a `charged`.
- `return`: registra devoluciones parciales o totales sin superar el saldo.
- `forfeit`: marca el deposito como perdido/incautado.
- `cancel`: cancela un deposito que aun esta pendiente.

Cada operacion exige un `operation_uuid`. El deposito se bloquea durante la
transaccion y guarda el UUID en su historial JSON. Un reintento devuelve el
mismo resultado sin duplicar cobros ni devoluciones; reutilizar el UUID para
otra operacion se rechaza.

La integracion con caja y las pantallas de administracion debe invocar este
servicio despues de validar el pedido, el bidon fisico y el metodo de pago.
Antes de staging queda pendiente validar la migracion sobre MariaDB y probar
las transiciones desde la interfaz real.
