From 88107ae5ace7d2a5124803fd3a14349e1874d8b1 Mon Sep 17 00:00:00 2001 From: Dominic Ferrando Date: Sat, 15 Aug 2026 15:03:06 -0400 Subject: [PATCH] Add default account to seed script --- apps/api/src/database/seed.ts | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/apps/api/src/database/seed.ts b/apps/api/src/database/seed.ts index cf0e6d6..95d9561 100644 --- a/apps/api/src/database/seed.ts +++ b/apps/api/src/database/seed.ts @@ -1,6 +1,7 @@ import { StandardsConfigSchema, } from "@blade-and-brawn/calculator"; +import { Gender } from "@blade-and-brawn/domain"; import { Value } from "@sinclair/typebox/value"; import { db } from "./db"; import { DEFAULT_NAME, env, log } from "../util"; @@ -68,6 +69,44 @@ async function seedCalculator(standardsConfigId: string): Promise { log.info({ id: result.id }, "seeded default calculator"); } +async function seedAccounts(): Promise { + const existing = await db.selectFrom("accounts") + .select(["id"]) + .where("name", "=", DEFAULT_NAME) + .executeTakeFirst(); + if (existing) { + log.info({ id: existing.id }, "default account already seeded, skipping"); + return; + } + + const account = await db.insertInto("accounts") + .values({ + name: DEFAULT_NAME, + discord_id: "1521640671721685157", + email: "outgrow_document040@simplelogin.com" + }) + .returning("id") + .executeTakeFirstOrThrow(); + log.info({ id: account.id }, "seeded default account"); + + await db.insertInto("assessments") + .values({ + account_id: account.id, + name: DEFAULT_NAME, + gender: Gender.Male, + age: 25, + weight: 80, + perf_back_squat: 72.57472, + perf_deadlift: 127.00576, + perf_bench_press: 102.0582, + perf_run: 446000, + perf_broad_jump: 185.42000000000002, + perf_cone_drill: 9870, + }) + .execute(); + log.info({ accountId: account.id }, "seeded placeholder assessment"); +} + (async () => { const answer = prompt(`Seed the database (${env.DATABASE_URL}) with default standards data? (y/N)`); if (answer?.trim().toLowerCase() !== "y") { @@ -80,6 +119,7 @@ async function seedCalculator(standardsConfigId: string): Promise { const datasetId = await seedStandardsDataset(); const standardsConfigId = await seedStandardsConfig(datasetId); await seedCalculator(standardsConfigId); + await seedAccounts(); log.info("seed finished"); } catch (err) {