Alpha release
This commit is contained in:
parent
62681acd16
commit
eeda5062ae
14 changed files with 842 additions and 1 deletions
77
Server/DB/handler.py
Normal file
77
Server/DB/handler.py
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import datetime
|
||||
import os
|
||||
|
||||
from typing import List
|
||||
|
||||
from sqlalchemy import create_engine, BLOB, Column, Boolean, Float, Integer, String, JSON, DateTime, ForeignKey
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import DeclarativeBase, sessionmaker, relationship, Mapped, mapped_column
|
||||
from loguru import logger
|
||||
|
||||
from flask_login import UserMixin
|
||||
|
||||
# create an in-memory SQLite database
|
||||
engine = create_engine('sqlite:///db.sqlite', echo=True)
|
||||
Session = sessionmaker(bind=engine)
|
||||
session = Session()
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
class User(UserMixin, Base):
|
||||
__tablename__ = 'User'
|
||||
username = Column(String, primary_key=True, unique=True)
|
||||
hashed_password = Column(String)
|
||||
salt = Column(String)
|
||||
class Log(Base): #TODO uSe
|
||||
__tablename__ = 'Log'
|
||||
number = Column(Integer, primary_key=True)
|
||||
created_at = Column(DateTime, default=datetime.datetime.now)
|
||||
desk_ = Column(Integer)
|
||||
ip = Column(Integer)
|
||||
def __init__(self, desk, ip, tel_nr):
|
||||
self.desk = desk
|
||||
self.ip = ip
|
||||
|
||||
class QR(Base): #TODO: Decide if encryption Salting hasing and anti rainbow attack is eeded for the qr codes?
|
||||
__tablename__ = 'qr'
|
||||
desk = Column(Integer, primary_key=True)
|
||||
qr_secret = Column(Integer)
|
||||
qr_img = Column(BLOB)
|
||||
|
||||
def __init__(self, desk, qr_img, qr_secret=0):
|
||||
self.desk = desk
|
||||
self.qr_secret = qr_secret
|
||||
self.qr_img = qr_img
|
||||
|
||||
class Product(Base):
|
||||
__tablename__ = 'product'
|
||||
id = mapped_column(Integer, primary_key=True)
|
||||
name = Column(String)
|
||||
quantity = Column(Integer)
|
||||
order_id = mapped_column(ForeignKey("order.id"))
|
||||
order = relationship("Order", back_populates="order")
|
||||
|
||||
def __init__(self, quantity,name, order_id):
|
||||
self.quantity = quantity
|
||||
self.name = name
|
||||
self.order_id = order_id
|
||||
self.date = datetime.datetime.now()
|
||||
|
||||
class Order(Base):
|
||||
__tablename__ = 'order'
|
||||
id = mapped_column(Integer, primary_key=True)
|
||||
order = relationship("Product", back_populates="order")
|
||||
desk_number = Column(Integer)
|
||||
finished = Column(Boolean)
|
||||
|
||||
def __init__(self, desk_number, finished=False, ):
|
||||
self.desk_number = desk_number
|
||||
self.desk = 1
|
||||
#TODO: replace product-order.json whit json object POST from flask
|
||||
# That means a UI for setting all values.
|
||||
self.finished = finished
|
||||
|
||||
Base.metadata.create_all(engine)
|
||||
Loading…
Add table
Add a link
Reference in a new issue