dashboard/helpers/models.py
2022-03-22 15:56:36 +08:00

54 lines
1.5 KiB
Python

"""
Implement different models used by Stackspin panel
"""
from flask import current_app
from flask_sqlalchemy import SQLAlchemy
# pylint: disable=cyclic-import
# This is based on the documentation of Flask Alchemy
#from app import db
# We need this import at some point to hook up roles and users
# from sqlalchemy.orm import relationship
from sqlalchemy import ForeignKey, Integer, String
db = SQLAlchemy()
# Pylint complains about too-few-public-methods. Methods will be added once
# this is implemented.
# pylint: disable=too-few-public-methods
class App(db.Model):
"""
The App object, interact with the App database object. Data is stored in
the local database.
"""
id = db.Column(Integer, primary_key=True)
name = db.Column(String(length=64))
slug = db.Column(String(length=64), unique=True)
def __repr__(self):
return f"{self.id} <{self.name}>"
# Pylint complains about too-few-public-methods. Methods will be added once
# this is implemented.
# pylint: disable=too-few-public-methods
class AppRole(db.Model):
"""
The AppRole object, stores the roles Users have on Apps
"""
# pylint: disable=no-member
user_id = db.Column(String(length=64), primary_key=True)
# pylint: disable=no-member
app_id = db.Column(Integer, ForeignKey('app.id'),
primary_key=True)
# pylint: disable=no-member
role = db.Column(String(length=64))
def __repr__(self):
return f"{self.role} for {self.user_id} on {self.app_id}"