Initial commit: Queensway Europe Telco Portal (Flask + SQLite, Docker deploy)
This commit is contained in:
Executable
+74
@@ -0,0 +1,74 @@
|
||||
from datetime import datetime
|
||||
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
|
||||
db = SQLAlchemy()
|
||||
|
||||
|
||||
class Phone(db.Model):
|
||||
__tablename__ = "phones"
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
phone_number = db.Column(db.String(32), unique=True, nullable=False, index=True)
|
||||
plan = db.Column(db.String(120), nullable=True)
|
||||
contract_expiration = db.Column(db.Date, nullable=True)
|
||||
eligible_for_replacement = db.Column(db.Date, nullable=True)
|
||||
current_owner = db.Column(db.String(200), nullable=True)
|
||||
venue = db.Column(db.String(200), nullable=True)
|
||||
verified = db.Column(db.String(8), nullable=True)
|
||||
comment = db.Column(db.Text, nullable=True)
|
||||
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
"id": self.id,
|
||||
"phone_number": self.phone_number,
|
||||
"plan": self.plan,
|
||||
"contract_expiration": self.contract_expiration.isoformat() if self.contract_expiration else None,
|
||||
"eligible_for_replacement": self.eligible_for_replacement.isoformat() if self.eligible_for_replacement else None,
|
||||
"current_owner": self.current_owner,
|
||||
"venue": self.venue,
|
||||
"verified": self.verified,
|
||||
"comment": self.comment,
|
||||
}
|
||||
|
||||
|
||||
class User(db.Model):
|
||||
__tablename__ = "users"
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
username = db.Column(db.String(80), unique=True, nullable=False, index=True)
|
||||
password_hash = db.Column(db.String(255), nullable=False)
|
||||
role = db.Column(db.String(20), nullable=False, default="viewer") # "admin" or "viewer"
|
||||
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
"id": self.id,
|
||||
"username": self.username,
|
||||
"role": self.role,
|
||||
}
|
||||
|
||||
|
||||
class InternetConnection(db.Model):
|
||||
__tablename__ = "internet_connections"
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
venue = db.Column(db.String(200), nullable=False)
|
||||
isp_provider = db.Column(db.String(200), nullable=True)
|
||||
plan = db.Column(db.String(200), nullable=True)
|
||||
contract_expiration = db.Column(db.Date, nullable=True)
|
||||
notes = db.Column(db.Text, nullable=True)
|
||||
created_at = db.Column(db.DateTime, default=datetime.utcnow)
|
||||
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
"id": self.id,
|
||||
"venue": self.venue,
|
||||
"isp_provider": self.isp_provider,
|
||||
"plan": self.plan,
|
||||
"contract_expiration": self.contract_expiration.isoformat() if self.contract_expiration else None,
|
||||
"notes": self.notes,
|
||||
}
|
||||
Reference in New Issue
Block a user