import psycopg2

DB_CONFIG = {
    "host": "192.168.1.76",
    "port": 5432,
    "user": "vladimir.buzalka",
    "password": "Vlado7309208104++",
    "database": "fotky_buzalkovi",
}

SQL = """
CREATE TABLE IF NOT EXISTS zaloha_obrazku (
    id               SERIAL PRIMARY KEY,
    blake3_hash      VARCHAR(64)  UNIQUE NOT NULL,
    cesta_zalohy     TEXT         NOT NULL,
    nazev_souboru    VARCHAR(512) NOT NULL,
    velikost         BIGINT,
    datum_kopirovani TIMESTAMP    DEFAULT NOW()
);

CREATE TABLE IF NOT EXISTS zdrojove_soubory (
    id             SERIAL PRIMARY KEY,
    hostname       VARCHAR(255) NOT NULL,
    cesta_zdroje   TEXT         NOT NULL,
    nazev_souboru  VARCHAR(512) NOT NULL,
    velikost       BIGINT,
    datum_nalezeni TIMESTAMP    DEFAULT NOW(),
    blake3_hash    VARCHAR(64)  NOT NULL,
    zaloha_id      INTEGER      REFERENCES zaloha_obrazku(id),
    UNIQUE (hostname, cesta_zdroje)
);

CREATE INDEX IF NOT EXISTS idx_zaloha_hash  ON zaloha_obrazku (blake3_hash);
CREATE INDEX IF NOT EXISTS idx_zdroj_hash   ON zdrojove_soubory (blake3_hash);
CREATE INDEX IF NOT EXISTS idx_zdroj_zaloha ON zdrojove_soubory (zaloha_id);
CREATE INDEX IF NOT EXISTS idx_zdroj_host   ON zdrojove_soubory (hostname);
"""

conn = psycopg2.connect(**DB_CONFIG)
conn.autocommit = True
with conn.cursor() as cur:
    cur.execute(SQL)
conn.close()
print("Tabulky vytvoreny.")
