158 lines
3.3 KiB
Python
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()
|