-- Seed Data for USDA Vision Pecan Experiments System -- This file populates the database with initial data -- ============================================= -- 1. INSERT ROLES -- ============================================= INSERT INTO public.roles (name, description) VALUES ('admin', 'System administrator with full access to all features'), ('conductor', 'Experiment conductor who can manage experiments and view all data'), ('analyst', 'Data analyst who can view and analyze experiment results'), ('data recorder', 'Data entry specialist who can record experiment measurements'); -- ============================================= -- 2. CREATE ADMIN USER -- ============================================= -- Create admin user in auth.users INSERT INTO auth.users ( instance_id, id, aud, role, email, encrypted_password, email_confirmed_at, created_at, updated_at, confirmation_token, email_change, email_change_token_new, recovery_token ) VALUES ( '00000000-0000-0000-0000-000000000000', uuid_generate_v4(), 'authenticated', 'authenticated', 's.alireza.v@gmail.com', crypt('admin123', gen_salt('bf')), NOW(), NOW(), NOW(), '', '', '', '' ); -- Create user profile INSERT INTO public.user_profiles (id, email, status) SELECT id, email, 'active' FROM auth.users WHERE email = 's.alireza.v@gmail.com' ; -- Assign admin role INSERT INTO public.user_roles (user_id, role_id, assigned_by) SELECT up.id, r.id, up.id FROM public.user_profiles up CROSS JOIN public.roles r WHERE up.email = 's.alireza.v@gmail.com' AND r.name = 'admin' ; -- ============================================= -- 3. CREATE EXPERIMENT PHASES -- ============================================= -- Create "Phase 2 of JC Experiments" phase INSERT INTO public.experiment_phases (name, description, created_by) SELECT 'Phase 2 of JC Experiments', 'Second phase of JC Cracker experiments for pecan processing optimization', up.id FROM public.user_profiles up WHERE up.email = 's.alireza.v@gmail.com' ; -- ============================================= -- 4. INSERT EXPERIMENTS (First 10 as example) -- ============================================= INSERT INTO public.experiments ( experiment_number, reps_required, soaking_duration_hr, air_drying_time_min, plate_contact_frequency_hz, throughput_rate_pecans_sec, crush_amount_in, entry_exit_height_diff_in, results_status, completion_status, phase_id, created_by ) VALUES (1, 3, 2.0, 30, 15.0, 2.5, 0.125, 0.5, 'valid', false, (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments'), (SELECT id FROM public.user_profiles WHERE email = 's.alireza.v@gmail.com')), (2, 3, 2.5, 45, 12.0, 2.0, 0.150, 0.75, 'valid', false, (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments'), (SELECT id FROM public.user_profiles WHERE email = 's.alireza.v@gmail.com')), (3, 3, 3.0, 60, 10.0, 1.8, 0.175, 1.0, 'valid', false, (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments'), (SELECT id FROM public.user_profiles WHERE email = 's.alireza.v@gmail.com')), (4, 3, 1.5, 20, 18.0, 3.0, 0.100, 0.25, 'valid', false, (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments'), (SELECT id FROM public.user_profiles WHERE email = 's.alireza.v@gmail.com')), (5, 3, 2.0, 30, 15.0, 2.5, 0.125, 0.5, 'valid', false, (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments'), (SELECT id FROM public.user_profiles WHERE email = 's.alireza.v@gmail.com')), (6, 3, 2.5, 45, 12.0, 2.0, 0.150, 0.75, 'valid', false, (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments'), (SELECT id FROM public.user_profiles WHERE email = 's.alireza.v@gmail.com')), (7, 3, 3.0, 60, 10.0, 1.8, 0.175, 1.0, 'valid', false, (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments'), (SELECT id FROM public.user_profiles WHERE email = 's.alireza.v@gmail.com')), (8, 3, 1.5, 20, 18.0, 3.0, 0.100, 0.25, 'valid', false, (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments'), (SELECT id FROM public.user_profiles WHERE email = 's.alireza.v@gmail.com')), (9, 3, 2.0, 30, 15.0, 2.5, 0.125, 0.5, 'valid', false, (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments'), (SELECT id FROM public.user_profiles WHERE email = 's.alireza.v@gmail.com')), (10, 3, 2.5, 45, 12.0, 2.0, 0.150, 0.75, 'valid', false, (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments'), (SELECT id FROM public.user_profiles WHERE email = 's.alireza.v@gmail.com')) ; -- ============================================= -- 5. CREATE SAMPLE EXPERIMENT REPETITIONS -- ============================================= -- Create repetitions for first 5 experiments as examples INSERT INTO public.experiment_repetitions (experiment_id, repetition_number, created_by) SELECT e.id, rep_num, e.created_by FROM public.experiments e CROSS JOIN generate_series(1, 3) AS rep_num WHERE e.experiment_number <= 5 ;