29 lines
1.4 KiB
Python
29 lines
1.4 KiB
Python
from datetime import datetime
|
|
from . import db
|
|
|
|
class Store(db.Model):
|
|
id = db.Column(db.Integer, primary_key=True) # Store number like 210
|
|
name = db.Column(db.String(100), nullable=False)
|
|
password = db.Column(db.String(128), nullable=False) # plaintext for now (hash later)
|
|
|
|
class DeliveryOrder(db.Model):
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
do_number = db.Column(db.String(50), unique=True, nullable=False)
|
|
delivery_number = db.Column(db.String(50), nullable=False)
|
|
final_location = db.Column(db.Integer, db.ForeignKey('store.id'), nullable=False)
|
|
created_by = db.Column(db.String(100), nullable=False)
|
|
status = db.Column(db.String(50), default='Ready for Collection')
|
|
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
collected_by = db.Column(db.String(100), nullable=True)
|
|
|
|
movements = db.relationship('Movement', backref='delivery_order', cascade='all, delete-orphan')
|
|
|
|
class Movement(db.Model):
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
do_id = db.Column(db.Integer, db.ForeignKey('delivery_order.id'), nullable=False)
|
|
branch_id = db.Column(db.Integer, db.ForeignKey('store.id'), nullable=False)
|
|
arrived_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
departed_at = db.Column(db.DateTime, nullable=True)
|
|
handled_by = db.Column(db.String(100), nullable=False)
|
|
comment = db.Column(db.Text, nullable=True)
|