96 lines
4.1 KiB
PL/PgSQL
96 lines
4.1 KiB
PL/PgSQL
-- Seed Data: Extrudex common reference data
|
||
-- Author: Hex
|
||
-- Date: 2026-05-06
|
||
--
|
||
-- IMPORTANT: IDs are explicitly assigned to satisfy the DEFAULT constraints:
|
||
-- - filament_spools.material_finish_id DEFAULT 1 ("Basic")
|
||
-- - print_jobs.job_status_id DEFAULT 1 ("pending")
|
||
--
|
||
-- Density values sourced from common manufacturer specifications.
|
||
-- Temperature ranges are conservative/typical; users can override per-spool.
|
||
|
||
BEGIN;
|
||
|
||
-- ============================================================================
|
||
-- Printer Types
|
||
-- ============================================================================
|
||
|
||
INSERT INTO printer_types (id, name) VALUES
|
||
(1, 'fdm'),
|
||
(2, 'resin')
|
||
ON CONFLICT (id) DO NOTHING;
|
||
|
||
-- Reset the sequence so future inserts start after our explicit IDs
|
||
SELECT setval('printer_types_id_seq', GREATEST(2, (SELECT MAX(id) FROM printer_types)));
|
||
|
||
-- ============================================================================
|
||
-- Job Statuses
|
||
-- ============================================================================
|
||
|
||
INSERT INTO job_statuses (id, name) VALUES
|
||
(1, 'pending'),
|
||
(2, 'printing'),
|
||
(3, 'paused'),
|
||
(4, 'completed'),
|
||
(5, 'failed'),
|
||
(6, 'cancelled')
|
||
ON CONFLICT (id) DO NOTHING;
|
||
|
||
SELECT setval('job_statuses_id_seq', GREATEST(6, (SELECT MAX(id) FROM job_statuses)));
|
||
|
||
-- ============================================================================
|
||
-- Material Bases (common filament types)
|
||
-- ============================================================================
|
||
|
||
INSERT INTO material_bases (id, name, density_g_cm3, extrusion_temp_min, extrusion_temp_max, bed_temp_min, bed_temp_max) VALUES
|
||
(1, 'PLA', 1.24, 190, 220, 0, 60),
|
||
(2, 'PETG', 1.27, 230, 250, 70, 90),
|
||
(3, 'ABS', 1.04, 230, 260, 90, 110),
|
||
(4, 'TPU', 1.21, 220, 250, 0, 60),
|
||
(5, 'ASA', 1.07, 240, 260, 90, 110),
|
||
(6, 'Nylon', 1.14, 240, 280, 70, 100),
|
||
(7, 'PC', 1.20, 260, 310, 90, 120)
|
||
ON CONFLICT (id) DO NOTHING;
|
||
|
||
SELECT setval('material_bases_id_seq', GREATEST(7, (SELECT MAX(id) FROM material_bases)));
|
||
|
||
-- ============================================================================
|
||
-- Material Finishes
|
||
-- ============================================================================
|
||
-- ID 1 = "Basic" is the default for new spools (DEFAULT 1 constraint)
|
||
|
||
INSERT INTO material_finishes (id, name, description) VALUES
|
||
(1, 'Basic', 'Standard solid-color filament with no special finish'),
|
||
(2, 'Silk', 'Glossy silk-like sheen, often used for decorative prints'),
|
||
(3, 'Matte', 'Flat non-reflective surface finish'),
|
||
(4, 'Glossy', 'High-shine reflective surface'),
|
||
(5, 'Satin', 'Semi-gloss between matte and glossy')
|
||
ON CONFLICT (id) DO NOTHING;
|
||
|
||
SELECT setval('material_finishes_id_seq', GREATEST(5, (SELECT MAX(id) FROM material_finishes)));
|
||
|
||
-- ============================================================================
|
||
-- Material Modifiers
|
||
-- ============================================================================
|
||
|
||
INSERT INTO material_modifiers (id, name, description) VALUES
|
||
(1, 'Wood-Filled', 'Contains wood fibers for natural wood-like appearance and texture'),
|
||
(2, 'Carbon Fiber', 'Reinforced with carbon fibers for increased stiffness and strength'),
|
||
(3, 'Glow-in-Dark', 'Phosphorescent additive that glows after exposure to light'),
|
||
(4, 'Marble', 'Contains specks for a stone-like marble appearance')
|
||
ON CONFLICT (id) DO NOTHING;
|
||
|
||
SELECT setval('material_modifiers_id_seq', GREATEST(4, (SELECT MAX(id) FROM material_modifiers)));
|
||
|
||
-- ============================================================================
|
||
-- Default Application Settings
|
||
-- ============================================================================
|
||
|
||
INSERT INTO settings (key, value, description) VALUES
|
||
('default_low_stock_threshold_grams', '50', 'Default grams threshold for low-stock alerts on new spools'),
|
||
('default_diameter_mm', '1.75', 'Default filament diameter for new spools (1.75mm is the modern standard)'),
|
||
('filament_cross_section_area_mm2', '2.405', 'Cross-sectional area for 1.75mm filament: π × (1.75/2)²')
|
||
ON CONFLICT (key) DO NOTHING;
|
||
|
||
COMMIT;
|