- Add `FilamentService` for managing filament inventory, including creation, retrieval, updating, and deletion of filaments. - Introduce `SpoolPresetService` for handling spool presets, allowing users to create, update, and delete their custom presets. - Create domain models for `Filament` and `SpoolPreset` with necessary fields and methods. - Define repository interfaces for filament and spool preset persistence. - Implement application configuration management from environment variables. - Set up error handling with a centralized `AppError` type. - Build the Axum router with public and protected routes for user authentication and resource management.
27 lines
1.2 KiB
SQL
27 lines
1.2 KiB
SQL
-- 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);
|