50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
from formity.extensions import db
|
|
from datetime import datetime
|
|
import enum
|
|
|
|
|
|
class Status(enum.Enum):
|
|
new = 1
|
|
confirmed = 2
|
|
allocated = 3
|
|
fulfilled = 4
|
|
rejected = 5
|
|
|
|
|
|
class FaceshieldRequest(db.Model):
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
|
|
entity_info = db.Column(db.String)
|
|
full_name = db.Column(db.String)
|
|
phone_number = db.Column(db.String)
|
|
email = db.Column(db.String)
|
|
extra = db.Column(db.String)
|
|
|
|
faceshield_front_required = db.Column(db.Integer)
|
|
faceshield_model = db.Column(db.String)
|
|
|
|
faceshield_full_required = db.Column(db.Integer)
|
|
|
|
created = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
|
updated = db.Column(db.DateTime, default=datetime.utcnow, nullable=False,
|
|
onupdate=datetime.utcnow)
|
|
|
|
ua = db.Column(db.String)
|
|
ip = db.Column(db.String)
|
|
|
|
status = db.Column(db.Enum(Status), default=Status.new, server_default='new', nullable=False)
|
|
remarks = db.Column(db.String)
|
|
|
|
|
|
class RequestChange(db.Model):
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
request_id = db.Column(db.Integer, db.ForeignKey(FaceshieldRequest.id))
|
|
request = db.relationship(FaceshieldRequest, backref='changelog')
|
|
|
|
user_id = db.Column(db.String, nullable=False)
|
|
|
|
state_before = db.Column(db.JSON)
|
|
state_after = db.Column(db.JSON)
|
|
remarks = db.Column(db.String)
|
|
created = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|