2025-05-22 14:26:12 +03:00
DO $ $ BEGIN
CREATE TYPE " public " . " transaction_type " AS ENUM ( ' BUY ' , ' SELL ' ) ;
EXCEPTION
WHEN duplicate_object THEN null ;
END $ $ ;
- - > statement - breakpoint
CREATE TABLE IF NOT EXISTS " account " (
2025-05-22 14:37:19 +03:00
" id " serial PRIMARY KEY NOT NULL ,
2025-05-22 14:26:12 +03:00
" account_id " text NOT NULL ,
" provider_id " text NOT NULL ,
2025-05-22 14:37:19 +03:00
" user_id " integer NOT NULL ,
2025-05-22 14:26:12 +03:00
" access_token " text ,
" refresh_token " text ,
" id_token " text ,
" access_token_expires_at " timestamp with time zone ,
" refresh_token_expires_at " timestamp with time zone ,
" scope " text ,
" password " text ,
" created_at " timestamp with time zone DEFAULT now ( ) NOT NULL ,
" updated_at " timestamp with time zone DEFAULT now ( ) NOT NULL
) ;
- - > statement - breakpoint
CREATE TABLE IF NOT EXISTS " coin " (
" id " serial PRIMARY KEY NOT NULL ,
" name " varchar ( 255 ) NOT NULL ,
" symbol " varchar ( 10 ) NOT NULL ,
2025-05-22 14:37:19 +03:00
" creator_id " integer ,
2025-05-22 14:26:12 +03:00
" initial_supply " numeric ( 28 , 8 ) NOT NULL ,
" circulating_supply " numeric ( 28 , 8 ) NOT NULL ,
" current_price " numeric ( 19 , 8 ) NOT NULL ,
" market_cap " numeric ( 28 , 4 ) NOT NULL ,
" volume_24h " numeric ( 28 , 4 ) DEFAULT ' 0.0000 ' ,
" change_24h " numeric ( 8 , 4 ) DEFAULT ' 0.0000 ' ,
" pool_coin_amount " numeric ( 28 , 8 ) DEFAULT ' 0.00000000 ' NOT NULL ,
" pool_base_currency_amount " numeric ( 28 , 4 ) DEFAULT ' 0.0000 ' NOT NULL ,
" created_at " timestamp with time zone DEFAULT now ( ) NOT NULL ,
" updated_at " timestamp with time zone DEFAULT now ( ) NOT NULL ,
" is_listed " boolean DEFAULT true NOT NULL ,
CONSTRAINT " coin_symbol_unique " UNIQUE ( " symbol " )
) ;
- - > statement - breakpoint
CREATE TABLE IF NOT EXISTS " price_history " (
" id " serial PRIMARY KEY NOT NULL ,
" coin_id " integer NOT NULL ,
" price " numeric ( 19 , 8 ) NOT NULL ,
" timestamp " timestamp with time zone DEFAULT now ( ) NOT NULL
) ;
- - > statement - breakpoint
CREATE TABLE IF NOT EXISTS " session " (
2025-05-22 14:37:19 +03:00
" id " serial PRIMARY KEY NOT NULL ,
2025-05-22 14:26:12 +03:00
" expires_at " timestamp with time zone NOT NULL ,
" token " text NOT NULL ,
" created_at " timestamp with time zone DEFAULT now ( ) NOT NULL ,
" updated_at " timestamp with time zone DEFAULT now ( ) NOT NULL ,
" ip_address " text ,
" user_agent " text ,
2025-05-22 14:37:19 +03:00
" user_id " integer NOT NULL ,
2025-05-22 14:26:12 +03:00
CONSTRAINT " session_token_unique " UNIQUE ( " token " )
) ;
- - > statement - breakpoint
CREATE TABLE IF NOT EXISTS " transaction " (
" id " serial PRIMARY KEY NOT NULL ,
2025-05-22 14:37:19 +03:00
" user_id " integer NOT NULL ,
2025-05-22 14:26:12 +03:00
" coin_id " integer NOT NULL ,
" type " " transaction_type " NOT NULL ,
" quantity " numeric ( 28 , 8 ) NOT NULL ,
" price_per_coin " numeric ( 19 , 8 ) NOT NULL ,
" total_base_currency_amount " numeric ( 28 , 4 ) NOT NULL ,
" timestamp " timestamp with time zone DEFAULT now ( ) NOT NULL
) ;
- - > statement - breakpoint
CREATE TABLE IF NOT EXISTS " user " (
" id " serial PRIMARY KEY NOT NULL ,
" name " text NOT NULL ,
" email " text NOT NULL ,
" email_verified " boolean DEFAULT false NOT NULL ,
" image " text ,
" created_at " timestamp with time zone DEFAULT now ( ) NOT NULL ,
" updated_at " timestamp with time zone DEFAULT now ( ) NOT NULL ,
" is_admin " boolean DEFAULT false ,
" is_banned " boolean DEFAULT false ,
" ban_reason " text ,
" base_currency_balance " numeric ( 19 , 4 ) DEFAULT ' 10000.0000 ' NOT NULL ,
2025-05-23 16:26:02 +03:00
" bio " varchar ( 160 ) DEFAULT ' Hello am 48 year old man from somalia. Sorry for my bed england. I selled my wife for internet connection for play “conter stirk” ' ,
" username " varchar ( 30 ) NOT NULL ,
CONSTRAINT " user_email_unique " UNIQUE ( " email " ) ,
CONSTRAINT " user_username_unique " UNIQUE ( " username " )
2025-05-22 14:26:12 +03:00
) ;
- - > statement - breakpoint
CREATE TABLE IF NOT EXISTS " user_portfolio " (
2025-05-22 14:37:19 +03:00
" user_id " integer NOT NULL ,
2025-05-22 14:26:12 +03:00
" coin_id " integer NOT NULL ,
" quantity " numeric ( 28 , 8 ) NOT NULL ,
" updated_at " timestamp with time zone DEFAULT now ( ) NOT NULL ,
CONSTRAINT " user_portfolio_user_id_coin_id_pk " PRIMARY KEY ( " user_id " , " coin_id " )
) ;
- - > statement - breakpoint
CREATE TABLE IF NOT EXISTS " verification " (
2025-05-22 14:37:19 +03:00
" id " serial PRIMARY KEY NOT NULL ,
2025-05-22 14:26:12 +03:00
" identifier " text NOT NULL ,
" value " text NOT NULL ,
" expires_at " timestamp with time zone NOT NULL ,
" created_at " timestamp with time zone DEFAULT now ( ) ,
" updated_at " timestamp with time zone DEFAULT now ( )
) ;
- - > statement - breakpoint
DO $ $ BEGIN
ALTER TABLE " account " ADD CONSTRAINT " account_user_id_user_id_fk " FOREIGN KEY ( " user_id " ) REFERENCES " public " . " user " ( " id " ) ON DELETE cascade ON UPDATE no action ;
EXCEPTION
WHEN duplicate_object THEN null ;
END $ $ ;
- - > statement - breakpoint
DO $ $ BEGIN
ALTER TABLE " coin " ADD CONSTRAINT " coin_creator_id_user_id_fk " FOREIGN KEY ( " creator_id " ) REFERENCES " public " . " user " ( " id " ) ON DELETE set null ON UPDATE no action ;
EXCEPTION
WHEN duplicate_object THEN null ;
END $ $ ;
- - > statement - breakpoint
DO $ $ BEGIN
ALTER TABLE " price_history " ADD CONSTRAINT " price_history_coin_id_coin_id_fk " FOREIGN KEY ( " coin_id " ) REFERENCES " public " . " coin " ( " id " ) ON DELETE cascade ON UPDATE no action ;
EXCEPTION
WHEN duplicate_object THEN null ;
END $ $ ;
- - > statement - breakpoint
DO $ $ BEGIN
ALTER TABLE " session " ADD CONSTRAINT " session_user_id_user_id_fk " FOREIGN KEY ( " user_id " ) REFERENCES " public " . " user " ( " id " ) ON DELETE cascade ON UPDATE no action ;
EXCEPTION
WHEN duplicate_object THEN null ;
END $ $ ;
- - > statement - breakpoint
DO $ $ BEGIN
ALTER TABLE " transaction " ADD CONSTRAINT " transaction_user_id_user_id_fk " FOREIGN KEY ( " user_id " ) REFERENCES " public " . " user " ( " id " ) ON DELETE cascade ON UPDATE no action ;
EXCEPTION
WHEN duplicate_object THEN null ;
END $ $ ;
- - > statement - breakpoint
DO $ $ BEGIN
ALTER TABLE " transaction " ADD CONSTRAINT " transaction_coin_id_coin_id_fk " FOREIGN KEY ( " coin_id " ) REFERENCES " public " . " coin " ( " id " ) ON DELETE cascade ON UPDATE no action ;
EXCEPTION
WHEN duplicate_object THEN null ;
END $ $ ;
- - > statement - breakpoint
DO $ $ BEGIN
ALTER TABLE " user_portfolio " ADD CONSTRAINT " user_portfolio_user_id_user_id_fk " FOREIGN KEY ( " user_id " ) REFERENCES " public " . " user " ( " id " ) ON DELETE cascade ON UPDATE no action ;
EXCEPTION
WHEN duplicate_object THEN null ;
END $ $ ;
- - > statement - breakpoint
DO $ $ BEGIN
ALTER TABLE " user_portfolio " ADD CONSTRAINT " user_portfolio_coin_id_coin_id_fk " FOREIGN KEY ( " coin_id " ) REFERENCES " public " . " coin " ( " id " ) ON DELETE cascade ON UPDATE no action ;
EXCEPTION
WHEN duplicate_object THEN null ;
END $ $ ;