Files
shd.build/scripts/seed-test-notifications.mjs
jb dd84dff055
Validate and deploy production / validate (push) Successful in 23s
Validate and deploy staging / validate (push) Successful in 50s
Validate and deploy production / deploy (push) Failing after 40s
Validate and deploy staging / deploy (push) Failing after 7s
feat: add community publishing and news syndication
2026-08-01 21:42:09 -04:00

66 lines
2.1 KiB
JavaScript

import { connect } from '@tursodatabase/database';
import { randomUUID } from 'node:crypto';
import { resolve } from 'node:path';
const targetName = process.argv[2] || 'Aewyn';
const database = await connect(
resolve(process.env.TDR_DATABASE_PATH || './data/shd-build.db'),
);
const user = await (
await database.prepare(`SELECT users.id,COALESCE(user_profiles.display_name,users.username) AS display_name
FROM users LEFT JOIN user_profiles ON user_profiles.user_id=users.id
WHERE users.login_username=? COLLATE NOCASE OR users.username=? COLLATE NOCASE OR user_profiles.display_name=? COLLATE NOCASE
LIMIT 1`)
).get(targetName, targetName, targetName);
if (!user) throw new Error(`No user matched ${targetName}.`);
const now = Date.now();
const samples = [
[
'isac',
'ISAC AVATAR OVERSIGHT',
'[TEST] Custom avatar removed',
'Your custom avatar did not meet SHD.build image requirements and was removed. Oversight reason: The image contained unrelated promotional text.',
'/account#avatar',
1,
],
[
'contributions',
'ISAC DATA OVERSIGHT',
'[TEST] Contribution approved',
'Quick Draw brand-set data was approved and deployed to the live builder registry.',
'/isac/brands',
1,
],
[
'contributions',
'ISAC DATA OVERSIGHT',
'[TEST] Contribution needs revision',
'A talent update was not approved. Oversight reason: Tier II effect value does not match the supplied game evidence.',
'/isac/talents',
1,
],
[
'comments',
'SHD COMMUNITY',
'[TEST] New comment on your build',
'An agent commented on “First Wave Vector Critical Build”: This setup worked really well in Legendary missions.',
'/builds',
0,
],
];
for (const [index, sample] of samples.entries()) {
await (
await database.prepare(`INSERT INTO notifications
(id,user_id,category,source,title,body,link,mandatory,created_at)
VALUES(?,?,?,?,?,?,?,?,?)`)
).run(
randomUUID(),
user.id,
...sample,
new Date(now - index * 60_000).toISOString(),
);
}
console.log(
`Added ${samples.length} test notifications for ${user.display_name}.`,
);