diff --git a/src/wattanalyse/db.py b/src/wattanalyse/db.py index e2b7fd3..727265f 100644 --- a/src/wattanalyse/db.py +++ b/src/wattanalyse/db.py @@ -14,6 +14,7 @@ DB_URI: Final[str] = f"sqlite:///{constants.Config.DB_PATH_INTERNAL}" ENGINE_INTERNAL: Final[sql.Engine] = sql.create_engine(DB_URI) MD_INTERNAL = sql.MetaData() +MD_EXTERNAL = sql.MetaData() intern_prod_order_t: Table = Table( @@ -79,6 +80,9 @@ intern_prod_order_t_schema: dict[str, type[pl.DataType]] = { MD_INTERNAL.create_all(ENGINE_INTERNAL) +# // external database + +# ** read extern_prod_order_t_schema: dict[str, type[pl.DataType]] = { "VK Auftrag": pl.UInt32, "Artikelbez.": pl.String, @@ -109,3 +113,40 @@ extern_prod_order_t_schema: dict[str, type[pl.DataType]] = { "Anzahl Arbeitstage pro Woche": pl.UInt8, "Blockauftrag": pl.String, } + +# ** write +extern_results_prod_orders_t: Table = Table( + "KPI_PRODUKTIONSAUFTRAEGE", + MD_EXTERNAL, + Column("ID", sql.Integer, sql.CheckConstraint("ID = 1"), primary_key=True), + Column("AKTUALISIERT_AM", sql.DateTime, nullable=False), + Column("MITTLERE_ANZAHL_TAGE_LIEFERTERMINUNTERSCHREITUNG", sql.Integer, nullable=True), + Column("MITTLERE_ANZAHL_TAGE_LIEFERTERMINUEBERSCHREITUNG", sql.Integer, nullable=True), + Column( + "STANDARDABWEICHUNG_TAGE_LIEFERTERMINABWEICHUNG", sql.Numeric(10, 4), nullable=True + ), + Column("MITTLERE_ANZAHL_ANPASSUNGEN_LIEFERTERMIN", sql.Integer, nullable=True), + Column("MITTLERE_ABSTAENDE_ZWISCHEN_MELDUNGEN", sql.Integer, nullable=True), + Column("MITTLERE_DURCHLAUFZEIT_ANZAHL_TAGE", sql.Integer, nullable=True), +) + +extern_results_suppliers_t: Table = Table( + "KPI_KONFEKTIONAERE", + MD_EXTERNAL, + Column("ID", sql.Integer, primary_key=True), + Column("AKTUALISIERT_AM", sql.DateTime, nullable=False), + Column("KONFEKTIONAER", sql.String(200), nullable=True), + Column("QUOTE_ERSTBESTAETIGUNG", sql.Numeric(7, 4), nullable=True), + Column("PROZENT_LIEFERTREUE", sql.Numeric(7, 4), nullable=True), + Column("ANTEIL_PROZENT_LIEFERTERMINUNTERSCHREITUNG", sql.Numeric(7, 4), nullable=True), + Column("ANTEIL_PROZENT_LIEFERTERMINUEBERSCHREITUNG", sql.Numeric(7, 4), nullable=True), + Column("MITTLERE_ANZAHL_TAGE_LIEFERTERMINUNTERSCHREITUNG", sql.Integer, nullable=True), + Column("MITTLERE_ANZAHL_TAGE_LIEFERTERMINUEBERSCHREITUNG", sql.Integer, nullable=True), + Column( + "STANDARDABWEICHUNG_TAGE_LIEFERTERMINABWEICHUNG", sql.Numeric(10, 4), nullable=True + ), + Column("MITTLERE_ANZAHL_ANPASSUNGEN_LIEFERTERMIN", sql.Integer, nullable=True), + Column("MITTLERE_ABSTAENDE_ZWISCHEN_MELDUNGEN", sql.Integer, nullable=True), + Column("MITTLERE_DURCHLAUFZEIT_ANZAHL_TAGE", sql.Integer, nullable=True), + Column("MITTLERER_QUALITAETSSCORE_PSM", sql.Numeric(5, 4), nullable=True), +)