syntaxwebsite/app/models/universe.py

56 lines
2.5 KiB
Python

from app.extensions import db
from datetime import datetime
from app.enums.PlaceRigChoice import PlaceRigChoice
from app.enums.PlaceYear import PlaceYear
class Universe( db.Model ):
id = db.Column( db.BigInteger, primary_key=True, autoincrement=True, nullable=False )
root_place_id = db.Column( db.BigInteger, nullable=False, index=True, unique=True )
creator_id = db.Column( db.BigInteger, nullable=False, index=True )
creator_type = db.Column( db.SmallInteger, nullable=False )
created_at = db.Column( db.DateTime, nullable=False )
updated_at = db.Column( db.DateTime, nullable=False )
place_rig_choice = db.Column( db.Enum( PlaceRigChoice ), nullable=False, default = PlaceRigChoice.UserChoice )
place_year = db.Column( db.Enum( PlaceYear ), nullable=False, default = PlaceYear.Sixteen )
is_featured = db.Column( db.Boolean, nullable=False, default = False, index=True )
minimum_account_age = db.Column( db.Integer, nullable=False, default = 0 )
bc_required = db.Column( db.Boolean, nullable=False, default = False, index=True )
allow_direct_join = db.Column( db.Boolean, nullable=False, default = False, index=True )
is_public = db.Column( db.Boolean, nullable=False, default = True, index=True )
moderation_status = db.Column( db.SmallInteger, nullable=False, default = 0, index=True )
visit_count = db.Column( db.BigInteger, nullable=False, default = 0, index=True )
def __init__(
self,
root_place_id : int,
creator_id : int,
creator_type : int,
place_rig_choice : PlaceRigChoice = PlaceRigChoice.UserChoice,
place_year : PlaceYear = PlaceYear.Sixteen,
is_featured : bool = False,
minimum_account_age : int = 0,
bc_required : bool = False,
allow_direct_join : bool = False,
is_public : bool = True,
updated_at : datetime = None,
created_at : datetime = None
):
self.root_place_id = root_place_id
self.creator_id = creator_id
self.creator_type = creator_type
self.place_rig_choice = place_rig_choice
self.place_year = place_year
self.is_featured = is_featured
self.minimum_account_age = minimum_account_age
self.bc_required = bc_required
self.allow_direct_join = allow_direct_join
self.is_public = is_public
self.created_at = datetime.utcnow() if created_at is None else created_at
self.updated_at = datetime.utcnow() if updated_at is None else updated_at