Files
4ventures-client-portal/scripts/regen_bps_nov_preview.ts
4Ventures 59f42eafe0 Anchor calendar previews to each client historical editorial line.
Remix same-month prior years and recurring series instead of generic season placeholders like Black Friday.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 23:57:41 +02:00

65 lines
2.0 KiB
TypeScript

import { config } from 'dotenv';
import { resolve } from 'path';
config({ path: resolve(process.cwd(), '.env.local') });
import { generateMonthPreview } from '../src/lib/calendar-generate';
import type { RrssMonthPlan } from '../src/components/RrssMonthView';
async function main() {
const url = process.env.NEXT_PUBLIC_SUPABASE_URL!;
const key = process.env.SUPABASE_SERVICE_ROLE_KEY!;
const h = { apikey: key, Authorization: `Bearer ${key}` };
const tid = '8bec977a-6032-4759-aa7f-b5042081f450';
const r = await fetch(
`${url}/rest/v1/documents?tenant_id=eq.${tid}&type=eq.calendar&select=id,content&order=created_at.desc&limit=48`,
{ headers: h }
);
const docs = (await r.json()) as { id: string; content: unknown }[];
const history: RrssMonthPlan[] = [];
let novId: string | null = null;
for (const d of docs) {
const c =
typeof d.content === 'string' ? JSON.parse(d.content) : d.content;
const plan = c as RrssMonthPlan;
if (plan?.month === '2026-11') novId = d.id;
else if (plan?.month && Array.isArray(plan.pieces)) history.push(plan);
}
const result = await generateMonthPreview({
ym: '2026-11',
slug: 'bps',
label: 'Blue Parrot School',
history,
});
console.log('source', result.source);
console.log('rationale\n', result.rationale);
console.log('pieces', result.plan.pieces.length);
for (const p of result.plan.pieces) {
console.log(p.date, p.format.padEnd(8), '|', p.title);
}
if (!novId) {
console.log('No Nov doc to patch');
return;
}
const patch = await fetch(`${url}/rest/v1/documents?id=eq.${novId}`, {
method: 'PATCH',
headers: {
...h,
'Content-Type': 'application/json',
Prefer: 'return=minimal',
},
body: JSON.stringify({
content: result.plan,
title: 'RRSS Noviembre 2026',
updated_at: new Date().toISOString(),
}),
});
console.log('patched', patch.status);
}
main().catch((e) => {
console.error(e);
process.exit(1);
});