diff --git a/drizzle/0014_seed_demo_account.sql b/drizzle/0014_seed_demo_account.sql new file mode 100644 index 0000000..88f4558 --- /dev/null +++ b/drizzle/0014_seed_demo_account.sql @@ -0,0 +1,172 @@ +-- App Store review demo account: demo@example.com / demo123 +DO $$ +DECLARE + demo_user_id varchar(255) := 'a0000000-0000-4000-8000-000000000001'; + demo_account_id text := 'a0000000-0000-4000-8000-000000000010'; + demo_business_id varchar(255) := 'a0000000-0000-4000-8000-000000000020'; + demo_client_acme varchar(255) := 'a0000000-0000-4000-8000-000000000030'; + demo_client_bright varchar(255) := 'a0000000-0000-4000-8000-000000000031'; + demo_invoice_draft varchar(255) := 'a0000000-0000-4000-8000-000000000040'; + demo_invoice_sent varchar(255) := 'a0000000-0000-4000-8000-000000000041'; + demo_invoice_paid varchar(255) := 'a0000000-0000-4000-8000-000000000042'; + demo_password_hash text := '$2b$12$90U31okgkhOwSQD5RDqHwO0QpcC.pkKsqKb1IPnHfKUZm/2A9hzs6'; +BEGIN + IF EXISTS (SELECT 1 FROM "beenvoice_user" WHERE "email" = 'demo@example.com') THEN + RETURN; + END IF; + + INSERT INTO "beenvoice_user" ( + "id", "name", "email", "emailVerified", "password", "role" + ) VALUES ( + demo_user_id, + 'Demo User', + 'demo@example.com', + true, + demo_password_hash, + 'user' + ); + + INSERT INTO "beenvoice_account" ( + "id", "userId", "accountId", "providerId", "password" + ) VALUES ( + demo_account_id, + demo_user_id, + demo_user_id, + 'credential', + demo_password_hash + ); + + INSERT INTO "beenvoice_business" ( + "id", "name", "nickname", "email", "phone", "addressLine1", "city", "state", + "postalCode", "country", "isDefault", "createdById" + ) VALUES ( + demo_business_id, + 'Demo Studio LLC', + 'Demo Studio', + 'hello@demostudio.example', + '(555) 010-2000', + '100 Market Street', + 'San Francisco', + 'CA', + '94105', + 'United States', + true, + demo_user_id + ); + + INSERT INTO "beenvoice_client" ( + "id", "name", "email", "phone", "defaultHourlyRate", "currency", "createdById" + ) VALUES + ( + demo_client_acme, + 'Acme Corporation', + 'billing@acme.example', + '(555) 010-3001', + 150, + 'USD', + demo_user_id + ), + ( + demo_client_bright, + 'Bright Labs', + 'ap@brightlabs.example', + '(555) 010-3002', + 125, + 'USD', + demo_user_id + ); + + INSERT INTO "beenvoice_invoice" ( + "id", "invoiceNumber", "invoicePrefix", "businessId", "clientId", + "issueDate", "dueDate", "status", "totalAmount", "taxRate", "notes", "currency", "createdById" + ) VALUES + ( + demo_invoice_draft, + 'INV-DEMO-001', + '#', + demo_business_id, + demo_client_acme, + NOW() - INTERVAL '5 days', + NOW() + INTERVAL '25 days', + 'draft', + 1500, + 0, + 'Website redesign — phase 1', + 'USD', + demo_user_id + ), + ( + demo_invoice_sent, + 'INV-DEMO-002', + '#', + demo_business_id, + demo_client_bright, + NOW() - INTERVAL '20 days', + NOW() - INTERVAL '5 days', + 'sent', + 2500, + 0, + 'Mobile app consulting', + 'USD', + demo_user_id + ), + ( + demo_invoice_paid, + 'INV-DEMO-003', + '#', + demo_business_id, + demo_client_acme, + NOW() - INTERVAL '45 days', + NOW() - INTERVAL '15 days', + 'paid', + 3200, + 0, + 'API integration project', + 'USD', + demo_user_id + ); + + INSERT INTO "beenvoice_invoice_item" ( + "id", "invoiceId", "date", "description", "hours", "rate", "amount", "position" + ) VALUES + ( + 'a0000000-0000-4000-8000-000000000050', + demo_invoice_draft, + NOW() - INTERVAL '5 days', + 'UX wireframes and design system', + 10, + 150, + 1500, + 0 + ), + ( + 'a0000000-0000-4000-8000-000000000051', + demo_invoice_sent, + NOW() - INTERVAL '20 days', + 'Sprint planning and implementation', + 20, + 125, + 2500, + 0 + ), + ( + 'a0000000-0000-4000-8000-000000000052', + demo_invoice_paid, + NOW() - INTERVAL '45 days', + 'Backend API work', + 16, + 150, + 2400, + 0 + ), + ( + 'a0000000-0000-4000-8000-000000000053', + demo_invoice_paid, + NOW() - INTERVAL '44 days', + 'Deployment and documentation', + 5.33, + 150, + 800, + 1 + ); +END $$; diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 011b412..02f2247 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -99,6 +99,13 @@ "when": 1781194385000, "tag": "0013_invoice_public_token_expiry", "breakpoints": true + }, + { + "idx": 14, + "version": "7", + "when": 1781300000000, + "tag": "0014_seed_demo_account", + "breakpoints": true } ] }