cosmoguard-bd/marimo/database_creation.py
2026-01-13 22:20:56 +01:00

158 lines
3.3 KiB
Python

import marimo
__generated_with = "0.16.5"
app = marimo.App(width="medium")
@app.cell
def _():
import marimo as mo
import duckdb
return duckdb, mo
@app.cell
def _(duckdb):
con = duckdb.connect('main.db')
return (con,)
@app.cell
def _(con, mo):
_df = mo.sql(
f"""
--CREATE SEQUENCE seq_clienti START 1;
--CREATE SEQUENCE seq_compilatori START 1;
--CREATE SEQUENCE seq_tipi_prodotti START 1;
--CREATE SEQUENCE seq_stati_ordini START 1;
--CREATE SEQUENCE seq_ordini START 1;
""",
engine=con
)
return
@app.cell
def _(con, mo):
_df = mo.sql(
f"""
CREATE OR REPLACE TABLE clienti (
nome_cliente VARCHAR UNIQUE,
id_cliente INTEGER PRIMARY KEY DEFAULT NEXTVAL('seq_clienti')
)
""",
engine=con
)
return
@app.cell
def _(con, mo):
_df = mo.sql(
f"""
CREATE OR REPLACE TABLE compilatori (
nome_compilatore VARCHAR UNIQUE,
id_compilatore INTEGER PRIMARY KEY DEFAULT NEXTVAL('seq_compilatori')
)
""",
engine=con
)
return
@app.cell
def _(con, mo):
_df = mo.sql(
f"""
CREATE OR REPLACE TABLE tipi_prodotti (
nome_tipo VARCHAR UNIQUE,
id_tipo INTEGER PRIMARY KEY DEFAULT NEXTVAL('seq_tipi_prodotti'),
luogo_applicazione VARCHAR,
espo_primaria VARCHAR,
espo_secondaria VARCHAR,
espo_nano VARCHAR,
supericie_cm2 INT,
frequenza INT,
qty_daily_stimata INT,
qty_daily_relativa INT,
ritenzione FLOAT,
espo_daily_calcolata INT,
espo_daily_relativa_calcolata INT,
peso INT,
target VARCHAR
)
""",
engine=con
)
return
@app.cell
def _(con, mo):
_df = mo.sql(
f"""
CREATE OR REPLACE TABLE stati_ordini (
id_stato INTEGER PRIMARY KEY DEFAULT NEXTVAL('seq_stati_ordini'),
nome_stato VARCHAR
)
""",
engine=con
)
return (stati_ordini,)
@app.cell
def _(con, mo):
_df = mo.sql(
f"""
CREATE OR REPLACE TABLE ordini (
id_ordine INTEGER PRIMARY KEY DEFAULT NEXTVAL('seq_ordini'),
id_cliente INTEGER,
id_compilatore INTEGER,
id_tipo_prodotto INTEGER,
uuid_ordine VARCHAR NOT NULL,
uuid_progetto VARCHAR,
data_ordine DATETIME NOT NULL,
stato_ordine INTEGER DEFAULT 0,
note VARCHAR,
FOREIGN KEY (id_cliente) REFERENCES clienti(id_cliente),
FOREIGN KEY (id_compilatore) REFERENCES compilatori(id_compilatore),
FOREIGN KEY (id_tipo_prodotto) REFERENCES tipi_prodotti(id_tipo),
FOREIGN KEY (stato_ordine) REFERENCES stati_ordini(id_stato)
)
""",
engine=con
)
return
@app.cell
def _(con, mo):
_df = mo.sql(
f"""
""",
engine=con
)
return
@app.cell
def _(con, mo, stati_ordini):
_df = mo.sql(
f"""
INSERT INTO stati_ordini (nome_stato) VALUES (
'Ordine registrato',
''
)
""",
engine=con
)
return
if __name__ == "__main__":
app.run()