Prepara versao dev 1.0
This commit is contained in:
@@ -9,6 +9,17 @@ CREATE TABLE IF NOT EXISTS tenants (
|
||||
name VARCHAR(255) NOT NULL,
|
||||
domain VARCHAR(255) UNIQUE NOT NULL,
|
||||
subdomain VARCHAR(63) UNIQUE NOT NULL,
|
||||
cnpj VARCHAR(18),
|
||||
razao_social VARCHAR(255),
|
||||
email VARCHAR(255),
|
||||
phone VARCHAR(20),
|
||||
website VARCHAR(255),
|
||||
address TEXT,
|
||||
city VARCHAR(100),
|
||||
state VARCHAR(2),
|
||||
zip VARCHAR(10),
|
||||
description TEXT,
|
||||
industry VARCHAR(100),
|
||||
is_active BOOLEAN DEFAULT true,
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
||||
@@ -17,15 +28,15 @@ CREATE TABLE IF NOT EXISTS tenants (
|
||||
-- Users table
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
email VARCHAR(255) NOT NULL,
|
||||
tenant_id UUID REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
email VARCHAR(255) NOT NULL UNIQUE,
|
||||
password_hash VARCHAR(255) NOT NULL,
|
||||
first_name VARCHAR(128),
|
||||
last_name VARCHAR(128),
|
||||
role VARCHAR(50) DEFAULT 'CLIENTE' CHECK (role IN ('SUPERADMIN', 'ADMIN_AGENCIA', 'CLIENTE')),
|
||||
is_active BOOLEAN DEFAULT true,
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE(tenant_id, email)
|
||||
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Refresh tokens table
|
||||
@@ -45,6 +56,31 @@ CREATE INDEX IF NOT EXISTS idx_refresh_tokens_expires_at ON refresh_tokens(expir
|
||||
CREATE INDEX IF NOT EXISTS idx_tenants_subdomain ON tenants(subdomain);
|
||||
CREATE INDEX IF NOT EXISTS idx_tenants_domain ON tenants(domain);
|
||||
|
||||
-- Companies table
|
||||
CREATE TABLE IF NOT EXISTS companies (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
cnpj VARCHAR(18) NOT NULL,
|
||||
razao_social VARCHAR(255) NOT NULL,
|
||||
nome_fantasia VARCHAR(255),
|
||||
email VARCHAR(255),
|
||||
telefone VARCHAR(20),
|
||||
status VARCHAR(50) DEFAULT 'active',
|
||||
created_by_user_id UUID REFERENCES users(id),
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE(tenant_id, cnpj)
|
||||
);
|
||||
|
||||
-- Create indexes
|
||||
CREATE INDEX IF NOT EXISTS idx_companies_tenant_id ON companies(tenant_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_companies_cnpj ON companies(cnpj);
|
||||
|
||||
-- Insert SUPERADMIN user (você - admin master da AGGIOS)
|
||||
INSERT INTO users (email, password_hash, first_name, role, is_active)
|
||||
VALUES ('admin@aggios.app', '$2a$10$YourHashedPasswordHere', 'Admin Master', 'SUPERADMIN', true)
|
||||
ON CONFLICT (email) DO NOTHING;
|
||||
|
||||
-- Insert sample tenant for testing
|
||||
INSERT INTO tenants (name, domain, subdomain, is_active)
|
||||
VALUES ('Agência Teste', 'agencia-teste.aggios.app', 'agencia-teste', true)
|
||||
|
||||
Reference in New Issue
Block a user