From 5cf9895c799548af1382fd9105d631ba65c88e08 Mon Sep 17 00:00:00 2001 From: Diogo Diniz Date: Wed, 1 Apr 2026 14:42:42 +0100 Subject: [PATCH] feat: Data models --- app/models.py | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/app/models.py b/app/models.py index 6475416..ab0a476 100644 --- a/app/models.py +++ b/app/models.py @@ -1,11 +1,35 @@ -from sqlalchemy import Integer, String +from datetime import datetime + +from sqlalchemy import DateTime, ForeignKey, Integer, String from sqlalchemy.orm import Mapped, mapped_column from .db import Base +class User(Base): + __tablename__ = "users" + + id: Mapped[int] = mapped_column(Integer, primary_key=True) + name: Mapped[str] = mapped_column(String) + contact: Mapped[int] = mapped_column(Integer, nullable=True) + + class Drink(Base): __tablename__ = "drinks" id: Mapped[int] = mapped_column(Integer, primary_key=True) name: Mapped[str] = mapped_column(String) + price: Mapped[int] = mapped_column(Integer) + stock: Mapped[int] = mapped_column(Integer) + stocked_by: Mapped[int] = mapped_column(Integer, ForeignKey(User.id)) + + +# Buys +class Transaction(Base): + __tablename__ = "transactions" + + id: Mapped[int] = mapped_column(Integer, primary_key=True) + drink: Mapped[int] = mapped_column(Integer, ForeignKey(Drink.id)) + user: Mapped[int] = mapped_column(Integer, ForeignKey(User.id)) + quantity: Mapped[int] = mapped_column(Integer) + timestamp: Mapped[datetime] = mapped_column(DateTime)