migrate from hono
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
// Dev/test helper (settings debugMode) — random completions for a range of days.
|
||||
|
||||
export async function generateData(pb: any, famId: string, days = 7) {
|
||||
const [members, templates] = await Promise.all([
|
||||
pb.collection('users').getFullList({ filter: `famId = '${famId}' && role = 'child'` }),
|
||||
pb.collection('chore_templates').getFullList({ filter: `famId = '${famId}'` })
|
||||
]);
|
||||
|
||||
if (!members.length) return { error: 'No members found' };
|
||||
if (!templates.length) return { error: 'No templates found' };
|
||||
|
||||
let completionsCreated = 0;
|
||||
const today = new Date();
|
||||
|
||||
for (let d = 0; d < days; d++) {
|
||||
const date = new Date(today);
|
||||
date.setDate(date.getDate() - d);
|
||||
const dateStr = date.toISOString().slice(0, 10);
|
||||
|
||||
for (const m of members) {
|
||||
const completionRate = 0.5 + Math.random() * 0.5;
|
||||
for (const t of templates) {
|
||||
if (Math.random() > completionRate) continue;
|
||||
|
||||
let assigned = await pb.collection('assigned_chores').getFullList({
|
||||
filter: `famId = '${famId}' && memberId = '${m.id}' && templateId = '${t.id}'`
|
||||
});
|
||||
let assignedId;
|
||||
if (assigned?.length > 0) {
|
||||
assignedId = assigned[0].id;
|
||||
} else {
|
||||
const record = await pb.collection('assigned_chores').create({
|
||||
famId,
|
||||
memberId: m.id,
|
||||
templateId: t.id,
|
||||
frequency: t.defaultFrequency || 'daily',
|
||||
type: t.defaultType || 'points',
|
||||
value: t.defaultValue || 10
|
||||
});
|
||||
assignedId = record.id;
|
||||
}
|
||||
|
||||
const existing = await pb.collection('completions').getFullList({
|
||||
filter: `famId = '${famId}' && memberId = '${m.id}' && assignedChoreId = '${assignedId}' && date = '${dateStr}'`
|
||||
});
|
||||
if (existing?.length > 0) continue;
|
||||
|
||||
await pb.collection('completions').create({
|
||||
famId,
|
||||
memberId: m.id,
|
||||
assignedChoreId: assignedId,
|
||||
date: dateStr
|
||||
});
|
||||
completionsCreated++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return { completionsCreated, days };
|
||||
}
|
||||
Reference in New Issue
Block a user