aboutsummaryrefslogtreecommitdiff
path: root/scripts/seed-sheet1-routines.ts
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-09-30 22:13:07 +0200
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-09-30 22:13:07 +0200
commita725d4c7d28fee701b6997cc46cffddefbcd26bf (patch)
tree1e0899dc9fa67f8c74d7e4b7023881959d571d4f /scripts/seed-sheet1-routines.ts
parenta17b24b8e95bf85a8522fc0c2cbbdb8da31bf018 (diff)
Allow granular routine frequencies like 5/2w
Diffstat (limited to 'scripts/seed-sheet1-routines.ts')
-rw-r--r--scripts/seed-sheet1-routines.ts66
1 files changed, 33 insertions, 33 deletions
diff --git a/scripts/seed-sheet1-routines.ts b/scripts/seed-sheet1-routines.ts
index 3e3a286..2e1df37 100644
--- a/scripts/seed-sheet1-routines.ts
+++ b/scripts/seed-sheet1-routines.ts
@@ -4,7 +4,7 @@
* What the photo shows: rows = tasks grouped by room, columns = ISO week
* numbers of year 2026 (confirmed by user). An X = "done that week".
* No explicit target frequencies are written anywhere, so every
- * `frequencyDays` below is INFERRED from the gaps between X marks — each one
+ * `frequency` below is INFERRED from the gaps between X marks — each one
* carries a `TODO(you)` comment with the observed weeks. Search for
* `TODO(you)` and set the real intervals.
* All routines live in the single 'Ménage' project; rooms are a 'Room/Task'
@@ -42,7 +42,7 @@ import { createClient } from '@libsql/client';
type SeedRoutine = {
name: string; // 'Room/Task' — slash prefix groups by room inside the single project
- frequencyDays: number;
+ frequency: string;
/** Last checked ISO week of 2026 read off the sheet; null = never checked. */
lastWeek2026: number | null;
/** What the task covers (common-wisdom baseline, adapt freely). */
@@ -68,14 +68,14 @@ const ROUTINES: SeedRoutine[] = [
// ---- Ménage ----
{
name: 'Aspirateur',
- frequencyDays: 7,
+ frequency: '7d',
lastWeek2026: 37,
description:
'Sols, tapis, plinthes et dessous des meubles. Vider le bac, nettoyer brosse et filtre quand l’aspiration baisse.',
},
{
name: 'Serpillère',
- frequencyDays: 14,
+ frequency: '14d',
lastWeek2026: 34,
description:
'Après aspiration, serpillère bien essorée. Insister entrées et cuisine. Rincer la tête après usage.',
@@ -83,7 +83,7 @@ const ROUTINES: SeedRoutine[] = [
// --- Bureau ---
{
name: 'Bureau/Vitres',
- frequencyDays: 180,
+ frequency: '180d',
lastWeek2026: 22,
description:
'Cadres puis vitre, de haut en bas, par temps couvert. Rails et joints dépoussiérés.',
@@ -91,13 +91,13 @@ const ROUTINES: SeedRoutine[] = [
// ---- Chambre rose ----
{
name: 'Chambre rose/Draps',
- frequencyDays: 14,
+ frequency: '14d',
lastWeek2026: 31,
description: 'Draps + taies changés, matelas aéré 30 min. Lavage à 60 °C.',
},
{
name: 'Chambre rose/Vitres',
- frequencyDays: 180,
+ frequency: '180d',
lastWeek2026: 22,
description:
'Cadres puis vitre, de haut en bas, par temps couvert. Rails et joints dépoussiérés.',
@@ -105,7 +105,7 @@ const ROUTINES: SeedRoutine[] = [
// --- Chambre verte ---
{
name: 'Chambre verte/Vitres',
- frequencyDays: 180,
+ frequency: '180d',
lastWeek2026: 22,
description:
'Cadres puis vitre, de haut en bas, par temps couvert. Rails et joints dépoussiérés.',
@@ -113,69 +113,69 @@ const ROUTINES: SeedRoutine[] = [
// ---- Cuisine ----
{
name: 'Cuisine/Vitres',
- frequencyDays: 180,
+ frequency: '180d',
lastWeek2026: 22,
description:
'Cadres puis vitre, de haut en bas, par temps couvert. Rails et joints dépoussiérés.',
},
{
name: 'Cuisine/Cafetière',
- frequencyDays: 30,
+ frequency: '30d',
lastWeek2026: 12,
description:
'Détartrer puis rincer deux fois. Réservoir et porte-filtre lavés, filtre à eau selon notice.',
},
{
name: 'Cuisine/Lave-vaisselle',
- frequencyDays: 30,
+ frequency: '30d',
lastWeek2026: 32,
description:
'Filtre et bras gicleurs nettoyés, joints essuyés, cycle vide à chaud.',
},
{
name: 'Cuisine/Placard',
- frequencyDays: 90,
+ frequency: '90d',
lastWeek2026: 19,
description:
'Vider, trier dates, jeter les périmés, essuyer étagères. Lourds en bas.',
},
{
name: 'Cuisine/Four',
- frequencyDays: 90,
+ frequency: '90d',
lastWeek2026: 32,
description:
'Pyrolyse ou produit avec temps de pose, vitre et lèchefrite à part. Grilles trempées au bicarbonate.',
},
{
name: 'Cuisine/Frigo',
- frequencyDays: 30,
+ frequency: '30d',
lastWeek2026: 22,
description:
'Périmés jetés, clayettes lavées, température ~4 °C vérifiée, joints essuyés.',
},
{
name: 'Cuisine/Micro-ondes',
- frequencyDays: 7,
+ frequency: '7d',
lastWeek2026: 32,
description:
'Bol d’eau vinaigrée chauffé 3 à 5 min puis essuyage parois et plateau. Sans gratter à sec.',
},
{
name: 'Cuisine/Surfaces',
- frequencyDays: 7,
+ frequency: '7d',
lastWeek2026: 32,
description: 'Plan de travail et crédence dégraissés, rincés, séchés.',
},
{
name: 'Cuisine/Gazinière',
- frequencyDays: 7,
+ frequency: '7d',
lastWeek2026: 32,
description:
'Grilles et chapeaux trempés, plaque dégraissée, gicleurs débouchés si flamme irrégulière.',
},
{
name: 'Cuisine/Évier',
- frequencyDays: 7,
+ frequency: '7d',
lastWeek2026: 32,
description:
'Cuve et robinet détartrés et désinfectés, bonde et trop-plein nettoyés.',
@@ -183,76 +183,76 @@ const ROUTINES: SeedRoutine[] = [
// ---- Toilettes ----
{
name: 'Toilettes/Toilettes',
- frequencyDays: 7,
+ frequency: '7d',
lastWeek2026: 34,
description:
'Cuvette dedans et dehors, abattant et charnières, chasse et poignée, sol autour. Laisser agir le produit.',
},
{
name: 'Toilettes/Lavabo',
- frequencyDays: 7,
+ frequency: '7d',
lastWeek2026: 34,
description: 'Vasque et robinet, miroir, poubelle vidée, savon rechargé.',
},
// ---- Salle de bain ----
{
name: 'Salle de bain/Joints',
- frequencyDays: 90,
+ frequency: '90d',
lastWeek2026: 12,
description:
'Brossés au bicarbonate + vinaigre, rincés, séchés. Aérer pour limiter les moisissures.',
},
{
name: 'Salle de bain/Calcaire',
- frequencyDays: 14,
+ frequency: '14d',
lastWeek2026: 34,
description:
'Vinaigre sur paroi, robinetterie et pommeau (trempage), rinçage abondant.',
},
{
name: 'Salle de bain/Canalisations',
- frequencyDays: 30,
+ frequency: '30d',
lastWeek2026: 34,
description:
'Bicarbonate + vinaigre + eau chaude, temps de pose. Pas de soude sauf bouchon avéré.',
},
{
name: 'Salle de bain/Porte-serviettes',
- frequencyDays: 7,
+ frequency: '7d',
lastWeek2026: 34,
description:
'Serviettes lavées, barre et crochets dépoussiérés et essuyés.',
},
{
name: 'Salle de bain/Baignoire',
- frequencyDays: 7,
+ frequency: '7d',
lastWeek2026: 34,
description:
'Parois et fond anti-calcaire, joints, bonde et trop-plein. Rincer et sécher.',
},
{
name: 'Salle de bain/Miroir',
- frequencyDays: 14,
+ frequency: '14d',
lastWeek2026: 34,
description: 'Microfibre + eau vinaigrée, sans détremper cadre et bords.',
},
{
name: 'Salle de bain/Lavabo',
- frequencyDays: 7,
+ frequency: '7d',
lastWeek2026: 34,
description: 'Vasque, robinet, bonde (cheveux), miroir, savon rechargé.',
},
// ---- Salon ----
{
name: 'Salon/Vitres',
- frequencyDays: 180,
+ frequency: '180d',
lastWeek2026: 22,
description:
'Cadres puis vitre, de haut en bas, par temps couvert. Rails et joints dépoussiérés.',
},
{
name: 'Salon/Placards',
- frequencyDays: 90,
+ frequency: '90d',
lastWeek2026: null, // no marks → no completion
description:
'Vider, trier (donner, jeter), dépoussiérer, ranger par usage.',
@@ -260,7 +260,7 @@ const ROUTINES: SeedRoutine[] = [
// ---- Terrasse ----
{
name: 'Terrasse/Sol',
- frequencyDays: 60,
+ frequency: '60d',
lastWeek2026: 25,
description:
'Balayé puis lavé, joints désherbés, mobilier contrôlé selon saison.',
@@ -306,11 +306,11 @@ for (const r of ROUTINES) {
await client.execute({
sql: `INSERT INTO routines
- (id, version, project_id, name, frequency_days, description, archived, archived_at, created_at)
+ (id, version, project_id, name, frequency, description, archived, archived_at, created_at)
VALUES (?, 1, ?, ?, ?, ?, 0, NULL, ?)`,
- args: [routineId, projectId, r.name, r.frequencyDays, r.description, now],
+ args: [routineId, projectId, r.name, r.frequency, r.description, now],
});
- console.log(`add [${PROJECT}] ${r.name} every ${r.frequencyDays}d`);
+ console.log(`add [${PROJECT}] ${r.name} every ${r.frequency}`);
createdRoutines++;
}