-- Criação do banco (plano_corte_cnc)

-- Usuários do sistema
CREATE TABLE usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    senha VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Clientes
CREATE TABLE clientes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    telefone VARCHAR(20),
    endereco TEXT
);

-- Planos de corte
CREATE TABLE planos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(150) NOT NULL,
    cliente_id INT,
    ambiente VARCHAR(100),
    chapa_largura DECIMAL(10,2) DEFAULT 2750,
    chapa_altura DECIMAL(10,2) DEFAULT 1850,
    kerf DECIMAL(5,2) DEFAULT 7,
    sangria DECIMAL(5,2) DEFAULT 15,
    usuario_id INT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (usuario_id) REFERENCES usuarios(id) ON DELETE CASCADE,
    FOREIGN KEY (cliente_id) REFERENCES clientes(id) ON DELETE SET NULL
);

-- Peças do plano
CREATE TABLE pecas_plano (
    id INT AUTO_INCREMENT PRIMARY KEY,
    plano_id INT NOT NULL,
    descricao VARCHAR(150) NOT NULL,
    largura DECIMAL(10,2),
    comprimento DECIMAL(10,2),
    x_pos DECIMAL(10,2) DEFAULT 0,
    y_pos DECIMAL(10,2) DEFAULT 0,
    rotacao TINYINT DEFAULT 0, -- 0, 90, 180, 270
    FOREIGN KEY (plano_id) REFERENCES planos(id) ON DELETE CASCADE
);