-- Criar banco de dados (ajuste o nome conforme necessário)
CREATE DATABASE IF NOT EXISTS plataforma_precos;
USE plataforma_precos;

-- Tabela products
CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome_produto VARCHAR(150) NOT NULL,
    marca VARCHAR(100),
    categoria VARCHAR(100),
    descricao TEXT,
    foto_produto VARCHAR(255),
    codigo_barra VARCHAR(50) UNIQUE,
    data_validade DATE
);

CREATE FULLTEXT INDEX idx_products_name ON products(nome_produto);

-- Tabela stores
CREATE TABLE stores (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome_loja VARCHAR(150) NOT NULL,
    localizacao VARCHAR(250),
    contacto VARCHAR(100)
);

-- Tabela price_records
CREATE TABLE price_records (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product_id INT NOT NULL,
    store_id INT NOT NULL,
    user_id INT NOT NULL,
    preco_atual DECIMAL(10,2) NOT NULL,
    data_recolha TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    foto VARCHAR(255),
    FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE,
    FOREIGN KEY (store_id) REFERENCES stores(id) ON DELETE CASCADE,
    FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);

CREATE INDEX idx_price_records_product ON price_records(product_id);
CREATE INDEX idx_price_records_store ON price_records(store_id);