← back to NationalPaperHangers
db/seed.sql
127 lines
-- Sample installers + availability + a few bookings.
-- All passwords are bcrypt('demo1234'); change before production.
BEGIN;
-- Demo password hash for 'demo1234'
-- Generated with: node -e "console.log(require('bcrypt').hashSync('demo1234', 10))"
-- Replace if you regenerate.
DO $$
DECLARE pw TEXT := '$2b$10$.2P40NWtgXQiylgmJWIprO6.cML8l.wHfMwzB29jAd01uVXyjofka';
BEGIN
INSERT INTO installers
(slug, email, password_hash, business_name, contact_name, phone, headline, bio,
city, state, zip, service_radius_miles, travel_available, team_size, founded_year, website,
market_segments, materials, brands_handled, accreditations,
verified, verified_at, verified_by, insurance_on_file, insurance_expires,
tier, subscription_status, response_time_hours, status, profile_complete)
VALUES
('atelier-bond-nyc', 'demo+bond@example.com', pw, 'Atelier Bond Wallcoverings',
'Marcus Bond', '+1-212-555-0140',
'Hand-painted murals & silk specialists, downtown Manhattan',
'Three generations of paperhangers. We work primarily with hand-painted papers and metallic-leaf installations across luxury residential and boutique hospitality.',
'New York', 'NY', '10013', 75, true, 6, 1992, 'https://example.com/bond',
ARRAY['luxury_residential','hospitality','retail']::text[],
ARRAY['silk','hand_painted','metallic_leaf','grasscloth','mural']::text[],
ARRAY['Fromental','de Gournay','Maya Romanoff','Phillip Jeffries']::text[],
ARRAY['WIA Certified Installer','Maya Romanoff Certified','Fromental Trained']::text[],
true, now() - interval '60 days', 'NPH staff', true, '2027-03-15',
'signature', 'active', 6, 'active', true),
('paperworks-collective-la', 'demo+paperworks@example.com', pw, 'Paperworks Collective',
'Diana Reyes', '+1-323-555-0118',
'Five-installer studio serving West LA luxury residential',
'A West LA studio specializing in grasscloth, silk, and oversized murals. Frequent collaborators with the trade community across Beverly Hills, Bel Air, and Malibu.',
'Los Angeles', 'CA', '90048', 60, false, 5, 2008, 'https://example.com/paperworks',
ARRAY['luxury_residential','retail']::text[],
ARRAY['grasscloth','silk','vinyl','mural']::text[],
ARRAY['Phillip Jeffries','Schumacher','Cole & Son','Designer Wallcoverings']::text[],
ARRAY['WIA Certified','OSHA-30']::text[],
true, now() - interval '30 days', 'NPH staff', true, '2026-12-01',
'signature', 'active', 8, 'active', true),
('rivera-installs-miami', 'demo+rivera@example.com', pw, 'Rivera Installs',
'Luis Rivera', '+1-305-555-0173',
'Hospitality-grade installation, Miami & South Florida',
'Hospitality-focused crew with deep experience installing across hotels, restaurants, and yacht interiors. Five-person team, FL-licensed, fully insured.',
'Miami', 'FL', '33131', 100, true, 5, 2014, 'https://example.com/rivera',
ARRAY['hospitality','luxury_residential','yacht']::text[],
ARRAY['vinyl','grasscloth','digital_print']::text[],
ARRAY['Wolf-Gordon','Maharam','Phillip Jeffries']::text[],
ARRAY['WIA Certified']::text[],
true, now() - interval '90 days', 'NPH staff', true, '2026-08-22',
'pro', 'active', 12, 'active', true),
('north-loop-paper-co', 'demo+northloop@example.com', pw, 'North Loop Paper Co.',
'Eleanor Park', '+1-312-555-0192',
'Chicago Loop & North Shore residential specialist',
'Solo operator with 18 years experience. Take a small number of jobs per quarter; specialize in delicate hand-screened papers.',
'Chicago', 'IL', '60601', 45, false, 1, 2007, 'https://example.com/northloop',
ARRAY['luxury_residential']::text[],
ARRAY['hand_screened','grasscloth','silk']::text[],
ARRAY['Cole & Son','Schumacher','Farrow & Ball']::text[],
ARRAY['WIA Certified']::text[],
true, now() - interval '14 days', 'NPH staff', true, '2027-01-10',
'pro', 'active', 24, 'active', true),
('oakwood-wallcoverings-tx', 'demo+oakwood@example.com', pw, 'Oakwood Wallcoverings',
'Jack Oakley', '+1-214-555-0145',
'Dallas–Fort Worth contract & residential',
'DFW-based two-person crew. Mix of contract and luxury residential. Travel within Texas for the right project.',
'Dallas', 'TX', '75201', 80, true, 2, 2015, 'https://example.com/oakwood',
ARRAY['luxury_residential','retail','hospitality']::text[],
ARRAY['vinyl','grasscloth','mural']::text[],
ARRAY['Wolf-Gordon','Designer Wallcoverings']::text[],
ARRAY[]::text[],
false, NULL, NULL, false, NULL,
'basic', 'inactive', 24, 'pending', false);
-- Recurring weekly availability for the first three installers
INSERT INTO installer_availability (installer_id, day_of_week, start_time, end_time, timezone)
SELECT i.id, dow, '09:00'::time, '17:00'::time, 'America/Los_Angeles'
FROM installers i
CROSS JOIN generate_series(1,5) AS dow -- Mon..Fri
WHERE i.slug IN ('atelier-bond-nyc','paperworks-collective-la','rivera-installs-miami','north-loop-paper-co');
-- A demo time-off block for Bond
INSERT INTO installer_time_off (installer_id, start_at, end_at, reason, all_day)
SELECT id, now() + interval '14 days', now() + interval '17 days', 'Industry trade show', true
FROM installers WHERE slug='atelier-bond-nyc';
-- Sample portfolio entries
INSERT INTO installer_portfolio (installer_id, title, description, image_url, market_segment, material, brand, city, state, year, display_order)
SELECT i.id, 'Tribeca penthouse — Fromental hand-painted dining room',
'Custom-color Fromental panels installed across a 14-foot dining room with curved bay window detail.',
'/img/portfolio-placeholder-1.jpg',
'luxury_residential', 'hand_painted', 'Fromental', 'New York', 'NY', 2024, 1
FROM installers i WHERE i.slug='atelier-bond-nyc';
INSERT INTO installer_portfolio (installer_id, title, description, image_url, market_segment, material, brand, city, state, year, display_order)
SELECT i.id, 'Beverly Hills primary suite — Phillip Jeffries grasscloth',
'Floor-to-ceiling grasscloth across a 22-foot primary suite. Seamless paper match across four corners.',
'/img/portfolio-placeholder-2.jpg',
'luxury_residential', 'grasscloth', 'Phillip Jeffries', 'Beverly Hills', 'CA', 2025, 1
FROM installers i WHERE i.slug='paperworks-collective-la';
-- A demo booking
INSERT INTO bookings
(installer_id, customer_name, customer_email, customer_phone, project_type, market_segment,
material, brand, surfaces, rooms, square_feet, budget_band,
address_line1, city, state, zip,
scheduled_start, scheduled_end, status, customer_notes, source)
SELECT i.id, 'Eleanor Carlyle', 'eleanor@example.com', '+1-310-555-0166',
'consultation', 'luxury_residential',
'hand_painted', 'de Gournay', 'Dining room walls', 'Dining room', 280, '50k_plus',
'123 Beverly Glen Blvd', 'Los Angeles', 'CA', '90077',
now() + interval '7 days' + interval '10 hours',
now() + interval '7 days' + interval '11 hours',
'confirmed',
'Looking for a quote on de Gournay Earlham in custom blue colorway. Would like a site visit before committing.',
'web'
FROM installers i WHERE i.slug='paperworks-collective-la';
END $$;
COMMIT;