-- Migration: 003 - Criar tabela de filamentos CREATE TABLE filaments ( id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), user_id UUID NOT NULL REFERENCES users (id) ON DELETE CASCADE, material TEXT NOT NULL, brand TEXT NOT NULL, model TEXT, color_hex TEXT NOT NULL, spool_preset_id UUID NOT NULL REFERENCES spool_presets (id), total_weight_g INTEGER NOT NULL CHECK (total_weight_g > 0), net_weight_g INTEGER NOT NULL CHECK (net_weight_g >= 0), temp_hotend_c INTEGER CHECK (temp_hotend_c > 0), temp_bed_c INTEGER CHECK (temp_bed_c >= 0), flow_factor_pct DOUBLE PRECISION CHECK (flow_factor_pct > 0), notes TEXT, updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX idx_filaments_user_id ON filaments (user_id); CREATE INDEX idx_filaments_material ON filaments (user_id, material); CREATE INDEX idx_filaments_brand ON filaments (user_id, brand); CREATE INDEX idx_filaments_updated_at ON filaments (user_id, updated_at DESC); -- Índice para suporte a alertas de estoque baixo CREATE INDEX idx_filaments_net_weight ON filaments (user_id, net_weight_g);