2025-12-04 13:21:49 +01:00
|
|
|
"""
|
|
|
|
|
This is where the application is implemented.
|
|
|
|
|
"""
|
|
|
|
|
|
2025-12-26 18:53:14 +01:00
|
|
|
import logging
|
2025-12-04 19:25:18 +01:00
|
|
|
|
2025-12-26 18:53:14 +01:00
|
|
|
from sqlmodel import Session
|
|
|
|
|
from textual.app import App
|
2025-12-04 13:21:49 +01:00
|
|
|
|
2025-12-26 18:53:14 +01:00
|
|
|
from .database import create_db_and_tables, engine
|
|
|
|
|
from .models import Teilchen, make_teilchen_input
|
|
|
|
|
from .tui import AddInventoryScreen
|
2025-12-04 13:21:49 +01:00
|
|
|
|
2025-12-26 18:53:14 +01:00
|
|
|
logger = logging.getLogger(__name__)
|
2025-12-04 13:21:49 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class SammlerApp(App[None]):
|
2025-12-04 23:11:41 +01:00
|
|
|
async def on_mount(self) -> None:
|
2025-12-26 18:53:14 +01:00
|
|
|
create_db_and_tables()
|
2025-12-04 13:21:49 +01:00
|
|
|
_ = self.push_screen(AddInventoryScreen())
|
|
|
|
|
|
|
|
|
|
|
2025-12-26 18:53:14 +01:00
|
|
|
FAKE_INPUT = """
|
|
|
|
|
Ein Teilchen. #Tag03 #tag12 "Dieses Teilchen ist nur zum testen" #tag1 #tag2
|
|
|
|
|
""".strip(" \n")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def try_this():
|
|
|
|
|
teilchen_data = make_teilchen_input(FAKE_INPUT)
|
|
|
|
|
if not teilchen_data:
|
|
|
|
|
logger.error("oh no!")
|
|
|
|
|
|
|
|
|
|
with Session(engine) as session:
|
|
|
|
|
db_teilchen = Teilchen.model_validate(teilchen_data)
|
|
|
|
|
session.add(db_teilchen)
|
|
|
|
|
session.commit()
|
|
|
|
|
session.refresh(db_teilchen)
|
|
|
|
|
|
|
|
|
|
print(f"{db_teilchen=}")
|
|
|
|
|
|
|
|
|
|
|
2025-12-28 21:56:21 +01:00
|
|
|
app = SammlerApp()
|
|
|
|
|
|
|
|
|
|
|
2025-12-04 13:21:49 +01:00
|
|
|
def main() -> None:
|
2025-12-28 21:56:21 +01:00
|
|
|
# app = SammlerApp()
|
2025-12-04 13:21:49 +01:00
|
|
|
app.run()
|
2025-12-26 18:53:14 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
main()
|