Estrutura proposta para MySQL na Hostinger. Simples, sem ORM — PHP puro ou Laravel Lite.
Schema resumido — principais colunas
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(120) NOT NULL,
slug VARCHAR(140) UNIQUE,
category ENUM('pecas','tabuleiro','conjunto','acessorio'),
description_short TEXT,
description_long TEXT,
price_base DECIMAL(10,2) NOT NULL,
custom_surcharge_pct TINYINT DEFAULT 0,
stock SMALLINT DEFAULT 0,
lead_days TINYINT DEFAULT 15,
featured TINYINT(1) DEFAULT 0,
active TINYINT(1) DEFAULT 1,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE customers (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(120),
email VARCHAR(120) UNIQUE,
cpf VARCHAR(14),
phone VARCHAR(20),
zip VARCHAR(9),
address VARCHAR(200),
city VARCHAR(80),
state CHAR(2),
source VARCHAR(40),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE orders (
id INT AUTO_INCREMENT PRIMARY KEY,
order_code VARCHAR(12) UNIQUE,
customer_id INT,
status ENUM('novo','producao','enviado','entregue','cancelado'),
payment_method ENUM('pix','cartao','boleto'),
payment_status ENUM('pendente','pago','estornado'),
mp_payment_id VARCHAR(60),
subtotal DECIMAL(10,2),
shipping DECIMAL(10,2),
total DECIMAL(10,2),
notes TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);