| 12345678910111213141516171819202122232425262728293031 |
- CREATE TABLE users (
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
- email VARCHAR(255) UNIQUE NOT NULL,
- password_hash VARCHAR(255) NOT NULL,
- role VARCHAR(20) NOT NULL DEFAULT 'customer'
- CHECK (role IN ('superadmin', 'moderator', 'landlord', 'executor', 'customer')),
- status VARCHAR(20) NOT NULL DEFAULT 'active'
- CHECK (status IN ('active', 'banned', 'pending_verification')),
- name VARCHAR(255),
- avatar_url TEXT,
- phone VARCHAR(20),
- bio TEXT,
- country VARCHAR(10),
- created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
- updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
- deleted_at TIMESTAMPTZ
- );
- CREATE INDEX idx_users_role ON users(role);
- CREATE INDEX idx_users_status ON users(status);
- CREATE TABLE refresh_tokens (
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
- user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
- token_hash VARCHAR(255) NOT NULL,
- expires_at TIMESTAMPTZ NOT NULL,
- created_at TIMESTAMPTZ NOT NULL DEFAULT now()
- );
- CREATE UNIQUE INDEX idx_refresh_tokens_token_hash ON refresh_tokens(token_hash);
- CREATE INDEX idx_refresh_tokens_user_id ON refresh_tokens(user_id);
|