Saltar al contenido principal

Addons-sponsoreados-Creditos

Ver en Git


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: creditos
  • planet_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": {}
}