Addons-sponsoreados-Creditos
Addons sponsoreados - Creditos
Los addons sponsoreados son los que se pueden fraccionar y en caso de los espacios, ser utilizados por todos los usuarios del mismo.
A Noviembre de 2023, los addon_type sponsoreados son:
archivable_ha: has archivables (que se contabilizan fuera de la tabla addons)extensions: extensiones pagas (o licencias)credits: creditosplanet_hd: hectareas Planet (se asignan por fuera de este sistema)
Según el tipo, pueden ser asignados por un administrador (asignables) o simplemente el usuario los consume si hay disponible (no-asignables).
TODO: esta regla está sólo en el código python
En el caso de los espacios, se cargan addons a su id_espacio.
Esto permitirá que usuarios del espacio puedan ser sponsoreados, es decir,
que el espacio les asigne parte de esa cuota o que ellos mismos consuman de esa cuota
La cuota se dará de alta al espacio mediante soporte, que le asignará una cantidad y una fecha de validez.
Para los addons asignables, los administradores del espacio podrán administrar esa cuota desde su panel, (des)asignándole a cada usuario que deseeen. Para los no-asignables, si un usuario espacio quiere consumir cuota y hay disponible, se consume.
En el caso de los usuarios personales es igual, sólo que la cuota de addons se carga para el usuario personal y luego el mismo usuario se sponsorea. Esto significa que no hay asignaciones, sino que él mismo consume de su cuota.
Funcionamiento
En la tabla addons, se encuentran la columna id_espacio y id_espacio_sponsor. Cuando un espacio compra un addon, se carga en la tabla sólo con id_espacio (sin id_usuario ni de lote, ni de estancia).
Ese registro permite registrar la facturación (vinculado con id_transaccion a la tabla transaccion) y se contabilizará en las consultas de MRR.
Por otro lado, permite llevar contabilidad de la cuota disponible. Este registro se usará para asignar cuota a distintos usuarios. Cuando se asigna a un usuario, se crea un nuevo registro en la tabla addons, con el id del addon correspondiente, el id_usuario asignado, sin id_transaccion ya que no hay una facturación asociada, y en id_espacio_sponsor el espacio que sponsorea la cuota.
Es importante que la fecha_fin de este registro coincida con la fecha_fin de la cuota del espacio y que no sea nula.
Reglas
- Si hubiera 2 cuotas para un mismo espacio, se sumarán las mismas. Se asume que ambas tendrán la misma fecha_fin para coincidir la renovación. De no ser así, se tomará la mayor. Cuando se venza la primera, puede que quede un consumo mayor al disponible.
- Un usuario no puede tener asignada cuota 2 veces (si es un addon asignable)
- No se puede asignar cuota a un usuario que no pertenece al espacio.
En el caso de los usuarios personales es igual, sólo que la cuota se carga en la tabla addons con id_usuario y luego los consumos llevan id_usuario_sponsor.
Addons asignables
Los siguientes endpoints son los que permitirán a los administradores administrar la cuota del espacio.
Cabe mencionar que todos estos endpoints se pueden consultar sólo por administradores, caso contrario, levantará error de autorización.
Listado de addons del espacio
Obtener los addons vigentes del espacio.
GET /api/workspaces/addons
Respuesta:
{
"data": [
{
"addon_id": 119,
"available_quota": 2,
"consumed_quota": 3,
"end_date": "2023-05-22T10:46:31Z",
"addon_name": "Extension imagenes meteorolog",
"original_quota": 5,
"start_date": "2023-02-22T10:46:31Z",
"users": [
7388,
63099,
63048
]
},
{
"addon_id": 118,
"available_quota": 7,
"consumed_quota": 3,
"end_date": "2023-05-22T10:46:31Z",
"addon_name": "Extension asd",
"original_quota": 10,
"start_date": "2023-02-22T10:46:31Z",
"users": [
63050,
63048,
63049
]
}
]
}
Listado de usuarios por addon
Listar los usuarios que tienen assignado un addon
GET /api/workspaces/addons/users ? addon_id = XXX
Respuesta:
{
"data": [
{
"user_name": "dave grohl",
"user_id": 63099,
"amount": 1.0,
"start_date": "2023-03-03T14:05:58Z",
"end_date": "2023-05-22T10:46:31Z",
"email": "daveg@asd.com",
"addon_type": "extensions"
},
{
"user_name": "bruno marengo",
"user_id": 63048,
"amount": 2.3,
"start_date": "2023-03-03T10:32:51Z",
"end_date": "2023-05-22T10:46:31Z",
"email": "bruno.marengo@auravant.com",
"addon_type": "extensions"
}
]
}
Asignar un addon a un usuario
POST /api/workspaces/addons/users ? addon_id = XXX & user_id = YYY
Errores:
code = "NOT_ENOUGH_QUOTA": "There is not enough quota for the requested action"code = "QUOTA_ALREADY_ASSIGNED": "The requested user already has assigned quota"code = "CANNOT_ASSIGN_QUOTA": "The requested user cannot be assigned"code = "QUOTA_ERROR": "This quota cannot be assigned/unassigned"
Respuesta:
{
"info": "user assigned",
"data": {}
}
Desasignar un addon a un usuario
DELETE /api/workspaces/addons/users ? addon_id = XXX & user_id = YYY
Respuesta:
{
"info": "user unassigned",
"data": {}
}
Errores:
code = "CANNOT_ASSIGN_QUOTA": "The requested user cannot be assigned"
Creditos
Los addons de créditos se definen por un credit_name y cada feature/extension que funcione en base a créditos define de cuál consume.
Son no-asignables, es decir que los usuarios de los espacios consumen la cuota que deseen mientras haya disponibilidad.
Validar disponibilidad de créditos
GET /api/users/v2/addons/credits ? credit_name = XXX
Respuesta:
{
"data": {
"quota": {
"available_quota": 32.0
}
}
}
registrar consumo de créditos
POST /api/users/v2/addons/credits ? credit_name = XXX & amount = 1.0
amount puede ser flotante (usar solo punto decimal) o entero.
Errores:
code = "NOT_ENOUGH_QUOTA": "There is not enough quota for the requested action"code = "CANNOT_ASSIGN_QUOTA": "The requested user cannot be assigned"code = "QUOTA_ERROR": "This quota cannot be assigned/unassigned"
Respuesta:
{
"info": "ok",
"data": {}
}