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()