import os
import sqlite3

class Datenbank_anlegen:
    def __init__(self, pfad_datenbank):
        self.pfad_datenbank = pfad_datenbank
        self.db_anlegen()
        

    def db_anlegen(self):
        #pfad = r"C:\Users\fabia\OneDrive\Jade HS\Master\MGW2\Masterprojekt_allgemein\Masterprojekt\Programmierung\Campusnetz\Campusnetz.db"
        if not os.path.exists(self.pfad_datenbank):
            con = sqlite3.connect(self.pfad_datenbank)
            cursor = con.cursor()
            cursor.executescript("""CREATE TABLE Netzpunkte (
                           punktnummer TEXT(10),
                           naeherungx NUMERIC(9,3),
                            naeherungy NUMERIC(7,3),
                            naeherungz NUMERIC(8,3),
                            CONSTRAINT pk_Netzpunkte PRIMARY KEY (punktnummer)
                            );
                           
                           CREATE TABLE Standpunkte_Tachymeter (
                           spID INTEGER PRIMARY KEY AUTOINCREMENT,
                           punktnummer TEXT(10),
                           orientierunghz NUMERIC(2,5),
                            orientierungv NUMERIC(2,5),  
                            dateipfad TEXT(150),
                            standpunktsnummer INTEGER,
                           CONSTRAINT fk_Standpunkte_Tachymeter_Netzpunkte FOREIGN KEY (punktnummer)
                                REFERENCES Netzpunkte(punktnummer)
                            );
                
                            CREATE TABLE Beobachtungen_Tachymeter (
                           btID INTEGER PRIMARY KEY AUTOINCREMENT,
                           spID INTEGER,
                           punktnummer TEXT(10),
                           hz NUMERIC(3,5),
                           v  NUMERIC(3,5),
                           distanz NUMERIC(4,4),
                           CONSTRAINT fk_Beobachtungen_Tachymeter_Standpunkte_Tachymeter FOREIGN KEY (spID)
                                REFERENCES Standpunkte_Tachymeter(spID),
                            CONSTRAINT fk_Beobachtungen_Tachymeter_Netzpunkte FOREIGN KEY (punktnummer)
                                REFERENCES Netzpunkte(punktnummer)
                            );
        
                           """);
            con.commit()
            con.close()