photum/backend/internal/db/schema.sql

51 lines
1.6 KiB
SQL

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE TABLE usuarios (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
email VARCHAR(255) UNIQUE NOT NULL,
senha_hash VARCHAR(255) NOT NULL,
role VARCHAR(50) NOT NULL DEFAULT 'profissional',
ativo BOOLEAN NOT NULL DEFAULT TRUE,
criado_em TIMESTAMPTZ NOT NULL DEFAULT NOW(),
atualizado_em TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE cadastro_profissionais (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
usuario_id UUID REFERENCES usuarios(id) ON DELETE SET NULL,
nome VARCHAR(255) NOT NULL,
funcao_profissional VARCHAR(50) NOT NULL,
endereco VARCHAR(255),
cidade VARCHAR(100),
uf CHAR(2),
whatsapp VARCHAR(20),
cpf_cnpj_titular VARCHAR(20),
banco VARCHAR(100),
agencia VARCHAR(20),
conta_pix VARCHAR(120),
carro_disponivel BOOLEAN DEFAULT FALSE,
tem_estudio BOOLEAN DEFAULT FALSE,
qtd_estudio INT,
tipo_cartao VARCHAR(50),
observacao TEXT,
qual_tec INT,
educacao_simpatia INT,
desempenho_evento INT,
disp_horario INT,
media NUMERIC(3,2),
tabela_free VARCHAR(50),
extra_por_equipamento BOOLEAN DEFAULT FALSE,
criado_em TIMESTAMPTZ NOT NULL DEFAULT NOW(),
atualizado_em TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE refresh_tokens (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
usuario_id UUID NOT NULL REFERENCES usuarios(id) ON DELETE CASCADE,
token_hash VARCHAR(255) NOT NULL,
user_agent VARCHAR(255),
ip VARCHAR(45),
expira_em TIMESTAMPTZ NOT NULL,
revogado BOOLEAN NOT NULL DEFAULT FALSE,
criado_em TIMESTAMPTZ NOT NULL DEFAULT NOW()
);