cambio-camapaña-automatico
create table ciclos_productivos_config_users (
user_id int4 not null references usuarios(id),
change_day smallint not null,
change_month smallint not null,
biannual bool not null,
created_at timestamp not null,
updated_at timestamp null
);
alter table ciclos_productivos_config_users add constraint campaign_setting_user_unq unique(user_id);
create table ciclos_productivos_config_workspaces (
workspace_id int4 not null references escritorios(id),
change_day smallint not null,
change_month smallint not null,
biannual bool not null,
created_at timestamp not null,
updated_at timestamp null
);
alter table ciclos_productivos_config_workspaces add constraint campaign_setting_workspace_unq unique(workspace_id);
APIs
Consultar campaña actual:
GET /api/activities/campaigns/current
respuesta:
{
info: "campaign",
data: {
biannual: true,
change_date: "2023-07-01",
current_campaign: 2023
}
}
biannual: trueindica que el usuario debe visualizar las campañas en formato"23/24"biannual: falseindica que el usuario debe visualizar las campañas en formato"2023"Esta api siempre devolverá algo. si el usuario no lo tiene configurado, obtendrá la configuracion default para todos (1 julio, biannual true)
Configurar campañas:
Pueden configurar las campañas:
- usuarios personales
- usuarios administradores de espacios
Cada espacio tiene una única configuración para todos, que sólo la puede configurar el administrador.
Consultar con agus donde poner esta ventana en ambos casos
Consultar configuracion actual
GET /api/activities/campaigns
respuesta:
// caso que no tenga configurado
{
info: "campaign settings"
data: null
}
// caso que tenga configurado
{
info: "campaign setting",
data: {
biannual: true,
change_date: "2023-07-01",
current_campaign: 2023
}
}
Para setear una configuracion:
Si el usuario que hace la consulta es de un espacio y no es administrador, responderá error.
POST o PATCH /api/activities/campaigns
Body: application/json
{
"change_day": {"type": "number", "minimum": 1, "maximum": 31},
"change_month": {"type": "number", "minimum": 1, "maximum": 12},
"biannual": {"type": "boolean"},
}
OJO CON LOS NUMEROS DE LOS MESES Y DIAS, QUE NO ESTEN DEFASADOS (zero-indexed)
respuesta:
{
info: "campaign setting updated",
data: {
biannual: true,
change_date: "2023-07-01",
current_campaign: 2023
}
}