CREATE DATABASE IF NOT EXISTS inventario CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE inventario;

CREATE TABLE IF NOT EXISTS categorias (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(50) NOT NULL,
    descricao TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS departamentos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(50) NOT NULL,
    responsavel VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS bens (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    descricao TEXT,
    id_categoria INT,
    id_departamento INT,
    valor_compra DECIMAL(10, 2),
    data_compra DATE,
    status ENUM('ativo', 'manutencao', 'baixado', 'leilao') DEFAULT 'ativo',
    foto VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (id_categoria) REFERENCES categorias(id),
    FOREIGN KEY (id_departamento) REFERENCES departamentos(id)
);

CREATE TABLE IF NOT EXISTS movimentacoes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    id_bem INT,
    tipo ENUM('transferencia', 'manutencao', 'baixa') NOT NULL,
    origem VARCHAR(100),
    destino VARCHAR(100),
    data_movimentacao TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    observacao TEXT,
    FOREIGN KEY (id_bem) REFERENCES bens(id)
);

CREATE TABLE IF NOT EXISTS leiloes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    id_bem INT,
    data_leilao DATE,
    valor_minimo DECIMAL(10, 2),
    valor_venda DECIMAL(10, 2),
    comprador VARCHAR(100),
    status ENUM('pendente', 'realizado', 'cancelado') DEFAULT 'pendente',
    FOREIGN KEY (id_bem) REFERENCES bens(id)
);

INSERT INTO categorias (nome, descricao) VALUES 
('Informática', 'Computadores, notebooks e periféricos'),
('Mobiliário', 'Mesas, cadeiras e armários'),
('Veículos', 'Carros e motos da frota');

INSERT INTO departamentos (nome, responsavel) VALUES 
('TI', 'João Silva'),
('Administrativo', 'Maria Oliveira'),
('Logística', 'Carlos Santos');
