- Improved drag-and-drop experience for event scheduling with visual feedback and better cursor styles. - Added state management for tracking repetitions, including locked schedules and currently scheduling repetitions. - Implemented re-staggering logic to prevent overlap of scheduled events. - Enhanced event generation to include time points for soaking, airdrying, and cracking phases. - Updated the calendar to preserve and restore scroll position during event updates. - Refactored event handling to ensure smooth interaction and improved user experience.
365 lines
13 KiB
SQL
365 lines
13 KiB
SQL
-- Phase 2 JC Experiments Seed Data
|
|
-- This file contains all Phase 2 JC experiments from phase_2_experimental_run_sheet.csv
|
|
-- Each experiment has 3 repetitions, and each row represents one repetition
|
|
-- Updated to use 1-based numbering per phase and composite primary key
|
|
|
|
-- =============================================
|
|
-- INSERT PHASE 2 JC EXPERIMENTS
|
|
-- =============================================
|
|
|
|
-- First, insert unique experiments (based on experiment_number)
|
|
INSERT INTO public.experiments (
|
|
experiment_number,
|
|
reps_required,
|
|
results_status,
|
|
completion_status,
|
|
phase_id,
|
|
created_by
|
|
) VALUES
|
|
-- Phase 2 JC Experiments 1-20 (1-based numbering)
|
|
(1, 3, '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, '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, '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, '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, '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, '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, '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, '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, '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, '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')),
|
|
(11, 3, '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')),
|
|
(12, 3, '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')),
|
|
(13, 3, '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')),
|
|
(14, 3, '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')),
|
|
(15, 3, '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')),
|
|
(16, 3, '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')),
|
|
(17, 3, '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')),
|
|
(18, 3, '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')),
|
|
(19, 3, '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')),
|
|
(20, 3, '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'))
|
|
ON CONFLICT (experiment_number, phase_id) DO NOTHING;
|
|
|
|
-- =============================================
|
|
-- CREATE SOAKING PHASE RECORDS FOR PHASE 2 JC EXPERIMENTS
|
|
-- =============================================
|
|
|
|
-- Create soaking records for Phase 2 JC experiments (1-20)
|
|
INSERT INTO public.soaking (
|
|
experiment_id,
|
|
scheduled_start_time,
|
|
soaking_duration_hours,
|
|
scheduled_end_time,
|
|
created_by
|
|
)
|
|
SELECT
|
|
e.id,
|
|
NOW() + (e.experiment_number) * INTERVAL '1 day',
|
|
CASE e.experiment_number
|
|
WHEN 1 THEN 34 -- hours
|
|
WHEN 2 THEN 24
|
|
WHEN 3 THEN 38
|
|
WHEN 4 THEN 11
|
|
WHEN 5 THEN 13
|
|
WHEN 6 THEN 30
|
|
WHEN 7 THEN 10
|
|
WHEN 8 THEN 15
|
|
WHEN 9 THEN 27
|
|
WHEN 10 THEN 32
|
|
WHEN 11 THEN 26
|
|
WHEN 12 THEN 24
|
|
WHEN 13 THEN 28
|
|
WHEN 14 THEN 21
|
|
WHEN 15 THEN 22
|
|
WHEN 16 THEN 16
|
|
WHEN 17 THEN 20
|
|
WHEN 18 THEN 34
|
|
WHEN 19 THEN 18
|
|
WHEN 20 THEN 11
|
|
END,
|
|
NOW() + (e.experiment_number) * INTERVAL '1 day' +
|
|
CASE e.experiment_number
|
|
WHEN 1 THEN 34 * INTERVAL '1 hour'
|
|
WHEN 2 THEN 24 * INTERVAL '1 hour'
|
|
WHEN 3 THEN 38 * INTERVAL '1 hour'
|
|
WHEN 4 THEN 11 * INTERVAL '1 hour'
|
|
WHEN 5 THEN 13 * INTERVAL '1 hour'
|
|
WHEN 6 THEN 30 * INTERVAL '1 hour'
|
|
WHEN 7 THEN 10 * INTERVAL '1 hour'
|
|
WHEN 8 THEN 15 * INTERVAL '1 hour'
|
|
WHEN 9 THEN 27 * INTERVAL '1 hour'
|
|
WHEN 10 THEN 32 * INTERVAL '1 hour'
|
|
WHEN 11 THEN 26 * INTERVAL '1 hour'
|
|
WHEN 12 THEN 24 * INTERVAL '1 hour'
|
|
WHEN 13 THEN 28 * INTERVAL '1 hour'
|
|
WHEN 14 THEN 21 * INTERVAL '1 hour'
|
|
WHEN 15 THEN 22 * INTERVAL '1 hour'
|
|
WHEN 16 THEN 16 * INTERVAL '1 hour'
|
|
WHEN 17 THEN 20 * INTERVAL '1 hour'
|
|
WHEN 18 THEN 34 * INTERVAL '1 hour'
|
|
WHEN 19 THEN 18 * INTERVAL '1 hour'
|
|
WHEN 20 THEN 11 * INTERVAL '1 hour'
|
|
END,
|
|
e.created_by
|
|
FROM public.experiments e
|
|
WHERE e.experiment_number BETWEEN 1 AND 20
|
|
AND e.phase_id = (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments')
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
-- =============================================
|
|
-- CREATE AIRDRYING PHASE RECORDS FOR PHASE 2 JC EXPERIMENTS
|
|
-- =============================================
|
|
|
|
-- Create airdrying records for Phase 2 JC experiments (1-20)
|
|
INSERT INTO public.airdrying (
|
|
experiment_id,
|
|
scheduled_start_time,
|
|
duration_minutes,
|
|
scheduled_end_time,
|
|
created_by
|
|
)
|
|
SELECT
|
|
e.id,
|
|
NOW() + (e.experiment_number) * INTERVAL '1 day' + INTERVAL '2 days', -- Start 2 days after soaking
|
|
CASE e.experiment_number
|
|
WHEN 1 THEN 19 -- 19 minutes
|
|
WHEN 2 THEN 27 -- 27 minutes
|
|
WHEN 3 THEN 10 -- 10 minutes
|
|
WHEN 4 THEN 36 -- 36 minutes
|
|
WHEN 5 THEN 41 -- 41 minutes
|
|
WHEN 6 THEN 33 -- 33 minutes
|
|
WHEN 7 THEN 22 -- 22 minutes
|
|
WHEN 8 THEN 30 -- 30 minutes
|
|
WHEN 9 THEN 12 -- 12 minutes
|
|
WHEN 10 THEN 26 -- 26 minutes
|
|
WHEN 11 THEN 60 -- 60 minutes
|
|
WHEN 12 THEN 59 -- 59 minutes
|
|
WHEN 13 THEN 59 -- 59 minutes
|
|
WHEN 14 THEN 59 -- 59 minutes
|
|
WHEN 15 THEN 60 -- 60 minutes
|
|
WHEN 16 THEN 59 -- 59 minutes
|
|
WHEN 17 THEN 60 -- 60 minutes
|
|
WHEN 18 THEN 49 -- 49 minutes
|
|
WHEN 19 THEN 25 -- 25 minutes
|
|
WHEN 20 THEN 25 -- 25 minutes
|
|
END,
|
|
NOW() + (e.experiment_number) * INTERVAL '1 day' + INTERVAL '2 days' +
|
|
CASE e.experiment_number
|
|
WHEN 1 THEN 19 * INTERVAL '1 minute' -- 19 minutes
|
|
WHEN 2 THEN 27 * INTERVAL '1 minute' -- 27 minutes
|
|
WHEN 3 THEN 10 * INTERVAL '1 minute' -- 10 minutes
|
|
WHEN 4 THEN 36 * INTERVAL '1 minute' -- 36 minutes
|
|
WHEN 5 THEN 41 * INTERVAL '1 minute' -- 41 minutes
|
|
WHEN 6 THEN 33 * INTERVAL '1 minute' -- 33 minutes
|
|
WHEN 7 THEN 22 * INTERVAL '1 minute' -- 22 minutes
|
|
WHEN 8 THEN 30 * INTERVAL '1 minute' -- 30 minutes
|
|
WHEN 9 THEN 12 * INTERVAL '1 minute' -- 12 minutes
|
|
WHEN 10 THEN 26 * INTERVAL '1 minute' -- 26 minutes
|
|
WHEN 11 THEN 60 * INTERVAL '1 minute' -- 60 minutes
|
|
WHEN 12 THEN 59 * INTERVAL '1 minute' -- 59 minutes
|
|
WHEN 13 THEN 59 * INTERVAL '1 minute' -- 59 minutes
|
|
WHEN 14 THEN 59 * INTERVAL '1 minute' -- 59 minutes
|
|
WHEN 15 THEN 60 * INTERVAL '1 minute' -- 60 minutes
|
|
WHEN 16 THEN 59 * INTERVAL '1 minute' -- 59 minutes
|
|
WHEN 17 THEN 60 * INTERVAL '1 minute' -- 60 minutes
|
|
WHEN 18 THEN 49 * INTERVAL '1 minute' -- 49 minutes
|
|
WHEN 19 THEN 25 * INTERVAL '1 minute' -- 25 minutes
|
|
WHEN 20 THEN 25 * INTERVAL '1 minute' -- 25 minutes
|
|
END,
|
|
e.created_by
|
|
FROM public.experiments e
|
|
WHERE e.experiment_number BETWEEN 1 AND 20
|
|
AND e.phase_id = (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments')
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
-- =============================================
|
|
-- CREATE CRACKING PHASE RECORDS FOR PHASE 2 JC EXPERIMENTS
|
|
-- =============================================
|
|
|
|
-- Create cracking records for Phase 2 JC experiments (1-20)
|
|
INSERT INTO public.cracking (
|
|
experiment_id,
|
|
machine_type_id,
|
|
scheduled_start_time,
|
|
created_by
|
|
)
|
|
SELECT
|
|
e.id,
|
|
(SELECT id FROM public.machine_types WHERE name = 'JC Cracker'),
|
|
NOW() + (e.experiment_number) * INTERVAL '1 day' + INTERVAL '3 days', -- Start 3 days after soaking
|
|
e.created_by
|
|
FROM public.experiments e
|
|
WHERE e.experiment_number BETWEEN 1 AND 20
|
|
AND e.phase_id = (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments')
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
-- =============================================
|
|
-- CREATE JC CRACKER PARAMETERS FOR PHASE 2 JC EXPERIMENTS
|
|
-- =============================================
|
|
|
|
-- Create JC cracker parameters for Phase 2 JC experiments (1-20)
|
|
INSERT INTO public.jc_cracker_parameters (
|
|
cracking_id,
|
|
plate_contact_frequency_hz,
|
|
throughput_rate_pecans_sec,
|
|
crush_amount_in,
|
|
entry_exit_height_diff_in
|
|
)
|
|
SELECT
|
|
c.id,
|
|
CASE e.experiment_number
|
|
WHEN 1 THEN 53.0
|
|
WHEN 2 THEN 34.0
|
|
WHEN 3 THEN 60.0
|
|
WHEN 4 THEN 42.0
|
|
WHEN 5 THEN 41.0
|
|
WHEN 6 THEN 30.0
|
|
WHEN 7 THEN 37.0
|
|
WHEN 8 THEN 35.0
|
|
WHEN 9 THEN 55.0
|
|
WHEN 10 THEN 47.0
|
|
WHEN 11 THEN 44.0
|
|
WHEN 12 THEN 42.0
|
|
WHEN 13 THEN 37.0
|
|
WHEN 14 THEN 41.0
|
|
WHEN 15 THEN 45.0
|
|
WHEN 16 THEN 30.0
|
|
WHEN 17 THEN 41.0
|
|
WHEN 18 THEN 34.0
|
|
WHEN 19 THEN 38.0
|
|
WHEN 20 THEN 56.0
|
|
END,
|
|
CASE e.experiment_number
|
|
WHEN 1 THEN 28.0
|
|
WHEN 2 THEN 29.0
|
|
WHEN 3 THEN 28.0
|
|
WHEN 4 THEN 13.0
|
|
WHEN 5 THEN 38.0
|
|
WHEN 6 THEN 36.0
|
|
WHEN 7 THEN 30.0
|
|
WHEN 8 THEN 32.0
|
|
WHEN 9 THEN 24.0
|
|
WHEN 10 THEN 26.0
|
|
WHEN 11 THEN 12.0
|
|
WHEN 12 THEN 25.0
|
|
WHEN 13 THEN 23.0
|
|
WHEN 14 THEN 21.0
|
|
WHEN 15 THEN 17.0
|
|
WHEN 16 THEN 24.0
|
|
WHEN 17 THEN 14.0
|
|
WHEN 18 THEN 29.0
|
|
WHEN 19 THEN 35.0
|
|
WHEN 20 THEN 34.0
|
|
END,
|
|
CASE e.experiment_number
|
|
WHEN 1 THEN 0.05
|
|
WHEN 2 THEN 0.03
|
|
WHEN 3 THEN 0.06
|
|
WHEN 4 THEN 0.07
|
|
WHEN 5 THEN 0.05
|
|
WHEN 6 THEN 0.05
|
|
WHEN 7 THEN 0.06
|
|
WHEN 8 THEN 0.05
|
|
WHEN 9 THEN 0.04
|
|
WHEN 10 THEN 0.07
|
|
WHEN 11 THEN 0.08
|
|
WHEN 12 THEN 0.07
|
|
WHEN 13 THEN 0.06
|
|
WHEN 14 THEN 0.06
|
|
WHEN 15 THEN 0.07
|
|
WHEN 16 THEN 0.07
|
|
WHEN 17 THEN 0.07
|
|
WHEN 18 THEN 0.07
|
|
WHEN 19 THEN 0.07
|
|
WHEN 20 THEN 0.06
|
|
END,
|
|
CASE e.experiment_number
|
|
WHEN 1 THEN -0.09
|
|
WHEN 2 THEN 0.01
|
|
WHEN 3 THEN -0.10
|
|
WHEN 4 THEN -0.07
|
|
WHEN 5 THEN 0.03
|
|
WHEN 6 THEN -0.04
|
|
WHEN 7 THEN 0.02
|
|
WHEN 8 THEN -0.07
|
|
WHEN 9 THEN 0.04
|
|
WHEN 10 THEN 0.03
|
|
WHEN 11 THEN -0.10
|
|
WHEN 12 THEN -0.05
|
|
WHEN 13 THEN -0.08
|
|
WHEN 14 THEN -0.09
|
|
WHEN 15 THEN -0.08
|
|
WHEN 16 THEN 0.02
|
|
WHEN 17 THEN 0.04
|
|
WHEN 18 THEN -0.09
|
|
WHEN 19 THEN -0.08
|
|
WHEN 20 THEN -0.09
|
|
END
|
|
FROM public.experiments e
|
|
JOIN public.cracking c ON c.experiment_id = e.id
|
|
WHERE e.experiment_number BETWEEN 1 AND 20
|
|
AND e.phase_id = (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments')
|
|
ON CONFLICT DO NOTHING;
|
|
|
|
-- =============================================
|
|
-- CREATE EXPERIMENT REPETITIONS FOR PHASE 2 JC EXPERIMENTS
|
|
-- =============================================
|
|
|
|
-- Create experiment repetitions for Phase 2 JC experiments
|
|
-- Each experiment needs 3 repetitions
|
|
INSERT INTO public.experiment_repetitions (
|
|
experiment_id,
|
|
repetition_number,
|
|
status,
|
|
created_by
|
|
)
|
|
SELECT
|
|
e.id,
|
|
rep_num,
|
|
'pending',
|
|
e.created_by
|
|
FROM public.experiments e
|
|
CROSS JOIN generate_series(1, 3) AS rep_num
|
|
WHERE e.experiment_number BETWEEN 1 AND 20
|
|
AND e.phase_id = (SELECT id FROM public.experiment_phases WHERE name = 'Phase 2 of JC Experiments')
|
|
ON CONFLICT DO NOTHING;
|