all the project copy

This commit is contained in:
2026-07-16 12:27:06 +02:00
parent 926b7de75b
commit 568beef49a
631 changed files with 130346 additions and 0 deletions

66
api/bootstrap_db.py Normal file
View File

@@ -0,0 +1,66 @@
from pathlib import Path
import sys
import psycopg2
ROOT_DIR = Path(__file__).resolve().parents[1]
CONN_DIR = ROOT_DIR / "conn"
API_DIR = ROOT_DIR / "api"
for path in (CONN_DIR, API_DIR):
if str(path) not in sys.path:
sys.path.insert(0, str(path))
import config
from ai_index import ensure_ai_schema
BOT_SCHEMA_SQL = """
CREATE TABLE IF NOT EXISTS users (
tid BIGINT PRIMARY KEY,
username TEXT,
surname TEXT,
status CHAR(1) NOT NULL DEFAULT 'P',
user_admin BOOLEAN NOT NULL DEFAULT FALSE,
created_at TIMESTAMP NOT NULL DEFAULT now(),
updated_at TIMESTAMP NOT NULL DEFAULT now(),
CHECK (status IN ('P', 'A'))
);
CREATE TABLE IF NOT EXISTS filters (
fid BIGSERIAL PRIMARY KEY,
tid BIGINT NOT NULL REFERENCES users(tid) ON DELETE CASCADE,
sort CHAR(1) NOT NULL,
sort_value TEXT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT now(),
CHECK (sort IN ('A', 'S', 'C', 'P')),
UNIQUE (tid, sort, sort_value)
);
CREATE INDEX IF NOT EXISTS filters_tid_idx ON filters (tid);
CREATE INDEX IF NOT EXISTS filters_sort_idx ON filters (sort);
CREATE TABLE IF NOT EXISTS tickets (
fid BIGINT NOT NULL REFERENCES filters(fid) ON DELETE CASCADE,
ticket BIGINT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT now(),
PRIMARY KEY (fid, ticket)
);
CREATE INDEX IF NOT EXISTS tickets_ticket_idx ON tickets (ticket);
"""
def ensure_bot_schema():
connection = psycopg2.connect(**config.POSTGRES_CONFIG)
cursor = connection.cursor()
cursor.execute(BOT_SCHEMA_SQL)
connection.commit()
cursor.close()
connection.close()
if __name__ == "__main__":
ensure_bot_schema()
ensure_ai_schema()
print("PostgreSQL schema is ready")