37 lines
1.3 KiB
MySQL
37 lines
1.3 KiB
MySQL
|
|
-- ============================================================
|
||
|
|
-- TopTran — Script de criação das tabelas no PostgreSQL
|
||
|
|
-- ============================================================
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS empresas (
|
||
|
|
id TEXT PRIMARY KEY,
|
||
|
|
nome TEXT NOT NULL,
|
||
|
|
custo_por_km NUMERIC(10,2) NOT NULL,
|
||
|
|
observacoes TEXT DEFAULT '',
|
||
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS usuarios (
|
||
|
|
id TEXT PRIMARY KEY,
|
||
|
|
email TEXT NOT NULL UNIQUE,
|
||
|
|
name TEXT NOT NULL,
|
||
|
|
token TEXT,
|
||
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS corridas (
|
||
|
|
id TEXT PRIMARY KEY,
|
||
|
|
usuario_id TEXT NOT NULL REFERENCES usuarios(id) ON DELETE CASCADE,
|
||
|
|
empresa TEXT NOT NULL,
|
||
|
|
km NUMERIC(10,2) NOT NULL,
|
||
|
|
custo_por_km NUMERIC(10,2) NOT NULL,
|
||
|
|
total NUMERIC(10,2) NOT NULL,
|
||
|
|
data TEXT NOT NULL,
|
||
|
|
sincronizado SMALLINT DEFAULT 0,
|
||
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Índices para performance
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_corridas_usuario_id ON corridas(usuario_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_corridas_sincronizado ON corridas(sincronizado);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_usuarios_email ON usuarios(email);
|