-- SQL dump generated using DBML (dbml.dbdiagram.io) -- Database: PostgreSQL -- Generated at: 2025-11-30T03:13:20.470Z CREATE TABLE "users" ( "username" varchar PRIMARY KEY, "role" varchar NOT NULL DEFAULT 'member', "hashed_password" varchar NOT NULL, "full_name" varchar NOT NULL, "email" varchar UNIQUE NOT NULL, "is_email_verified" bool NOT NULL DEFAULT false, "password_changed_at" timestamptz NOT NULL DEFAULT '0001-01-01', "created_at" timestamptz NOT NULL DEFAULT (now()) ); CREATE TABLE "verify_emails" ( "id" bigserial PRIMARY KEY, "username" varchar NOT NULL, "email" varchar NOT NULL, "secret_code" varchar NOT NULL, "is_used" bool NOT NULL DEFAULT false, "created_at" timestamptz NOT NULL DEFAULT (now()), "expired_at" timestamptz NOT NULL DEFAULT (now() + interval '15 minutes') ); CREATE TABLE "sessions" ( "id" uuid PRIMARY KEY, "username" varchar NOT NULL, "refresh_token" varchar NOT NULL, "user_agent" varchar NOT NULL, "client_ip" varchar NOT NULL, "is_blocked" boolean NOT NULL DEFAULT false, "expires_at" timestamptz NOT NULL, "created_at" timestamptz NOT NULL DEFAULT (now()) ); ALTER TABLE "verify_emails" ADD FOREIGN KEY ("username") REFERENCES "users" ("username"); ALTER TABLE "sessions" ADD FOREIGN KEY ("username") REFERENCES "users" ("username");