backend: полная реструктуризация

This commit is contained in:
2022-11-20 19:36:42 +03:00
parent 8dc700fb7c
commit f8f570c533
14 changed files with 223 additions and 200 deletions

View File

View File

@@ -0,0 +1,24 @@
from flask import Blueprint
from flask_admin.contrib.sqla import ModelView
from textsouls import db
from textsouls import admin
from textsouls.common.api import register_api
from textsouls.users.models import User
class UserAdminView(ModelView):
def __init__(self, model, *args, **kwargs):
self.column_list = [c.key for c in model.__table__.columns]
self.form_columns = self.column_list
super(UserAdminView, self).__init__(model, *args, **kwargs)
bp = Blueprint("users", __name__)
register_api(bp, User, "users")
admin.add_view(UserAdminView(User, db.session))

View File

@@ -0,0 +1,26 @@
import datetime
from sqlalchemy_serializer import SerializerMixin
from textsouls import db
class User(db.Model, SerializerMixin):
__tablename__ = "users"
serialize_rules = ("-character",)
id = db.Column(db.BigInteger, primary_key=True, autoincrement=False)
chat_id = db.Column(db.BigInteger, nullable=False, unique=True)
first_name = db.Column(db.String(255), nullable=True)
last_name = db.Column(db.String(255), nullable=True)
username = db.Column(db.String(255), nullable=False)
registered_on = db.Column(
db.DateTime, nullable=False, default=datetime.datetime.now()
)
is_admin = db.Column(db.Boolean, nullable=False, default=False)
characters = db.relationship("Character", backref="user", lazy="dynamic")
def __str__(self):
return f"{self.id}: {self.username}"