예제 #1
0
class Cards(db.Model):
	__tablename__ = 'cards'

	card_id = db.Column(db.Integer, primary_key = True)
	name = db.Column(db.String, unique = True)
	mana_cost = db.Column(db.String)
	img_url = db.Column(db.String)
	colors_ref = db.relationship('Colors', secondary = card_colors_relationship, backref = db.backref('colorcards', lazy = 'dynamic'))
	types_ref = db.relationship('Types', secondary = card_types_relationship, backref = db.backref('typecards', lazy = 'dynamic'))
	subtypes_ref = db.relationship('Subtypes', secondary = card_subtypes_relationship, backref = db.backref('subtypescards', lazy = 'dynamic'))
	text = db.Column(db.String)

	def __init__(self,name, mana_cost,img_url,text):
		
		self.name = name
		self.mana_cost = mana_cost
		self.img_url = img_url
		self.text = text

	def __repr__(self):

		return json.dumps(dict(card_id = self.card_id,
							   name = self.name,
							   mana_cost = self.mana_cost,
							   img_url = self.img_url,
							   text = self.text))
예제 #2
0
class Types(db.Model):
	__tablename__ = 'types'

	id = db.Column(db.Integer, primary_key = True)
	types = db.Column(db.String, unique = True)

	def __init__(self, types):

		self.types = types

	def __repr__(self):

		return self.types
예제 #3
0
class Subtypes(db.Model):
	__tablename__ = 'subtypes'

	id = db.Column(db.Integer, primary_key = True)
	subtype = db.Column(db.String, unique = True)

	def __init__(self, subtype):

		self.subtype = subtype

	def __repr__(self):

		return self.subtype
예제 #4
0
class Colors(db.Model):
	__tablename__ = 'colors'

	id = db.Column(db.Integer, primary_key = True)
	color = db.Column(db.String, unique = True)

	def __init__(self, color):

		self.color = color

	def __repr__(self):

		return self.color
예제 #5
0
class Users(db.Model):
	__tablename__ = 'users'

	user_id = db.Column(db.Integer, primary_key = True)
	username = db.Column(db.String, unique = True)
	email = db.Column(db.String, unique = True)
	user_cards = db.relationship('Cards', secondary = card_decks_relationship, backref = db.backref('owner', lazy = 'dynamic'))
	my_clan = db.Column(db.Integer, db.ForeignKey('clans.clan_id'))

	def __init__(self,username,email):
		self.username = username
		self.email = email

	def __repr__(self):
		return json.dumps(dict(username = self.username,
							   email = self.email))
예제 #6
0
class Clans(db.Model):
	__tablename__ = 'clans'

 	clan_id = db.Column(db.Integer, primary_key = True)
 	clan_name = db.Column(db.String, unique = True)
	user_ref = db.relationship('Users', backref = db.backref('myclan'))

 	def __init__(self,clan_name):
 		self.clan_name = clan_name

 	def __repr__(self):
 		return json.dumps(dict(clan = self.clan_name))


# ONE CARD CAN HAVE MANY USERS
# ONE USER CAN HAVE MANY CARDS BUT ONE CLAN
# ONE CLAN CAN HAVE MANY USERS
예제 #7
0
class User(db.Model):
    __tablename__ = 'person'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    email = db.Column(db.String(120), index=True, unique=True)
    secure = db.Column(db.String(140), index=True, unique=True)  # magic url
    created = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    counter = db.Column(db.Integer, default=0)

    def __repr__(self):
        return f'<User {self.username}>'

    @property
    def full_link(self):
        if self.secure:
            return f'{app.config["HOSTNAME"]}/magic/api/v1.0/magic/{self.secure}'

    # Custom User Payload
    def get_security_payload(self):
        return {
            'id': self.id,
            'name': self.username,
            'email': self.email,
            'code': self.secure,
            'counter': self.counter,
            'url': self.full_link,
        }
예제 #8
0
class Admin(db.Model, UserMixin):
    __tablename__ = 'admins'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    email = db.Column(db.String(100), nullable=False)
    role = db.Column(db.String(100), nullable=False)
    password = db.Column(db.String(100), nullable=False)
    thumbnail = db.Column(db.String(100),
                          nullable=False,
                          default="defaultimg.jpg")

    def get_reset_token(self, expires_sec=1800):
        s = Serializer(current_app.config['SECRET_KEY'], expires_sec)
        return s.dumps({'user_id': self.id}).decode('utf-8')

    @staticmethod
    def verify_reset_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            user_id = s.loads(token)['user_id']
        except:
            return None
        return Admin.query.get(user_id)

    def __repr__(self):
        return f"Admin('{self.name}','{self.email}', '{self.thumbnail}')"
예제 #9
0
class Post(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    short_desc = db.Column(db.String(500), nullable=True)
    vid = db.Column(db.String(500), nullable=False, default='defaultvid.mp4')
    post_date = db.Column(db.String(300),
                          nullable=False,
                          default=datetime.utcnow)
    thumbnail = db.Column(db.String(500),
                          nullable=False,
                          default='defaultimg.jpg')
    cat_id = db.Column(db.Integer,
                       db.ForeignKey('categories.id'),
                       nullable=False)
    featured = db.Column(db.Boolean, unique=False, default=True)
    category = db.relationship('Category',
                               backref='cat_posts',
                               foreign_keys=[cat_id])
예제 #10
0
from magic import db
from flask import json


# RELATIONAL TABLES

card_decks_relationship = db.Table('decks_relationship',
		db.Column('user_id', db.Integer, db.ForeignKey('users.user_id')),
		db.Column('card_id', db.Integer, db.ForeignKey('cards.card_id'))
	)

card_colors_relationship = db.Table('colors_relationship',
		db.Column('id', db.Integer, db.ForeignKey('colors.id')),
		db.Column('card_id', db.Integer, db.ForeignKey('cards.card_id'))
	)

card_types_relationship = db.Table('types_relationship',
		db.Column('id', db.Integer, db.ForeignKey('types.id')),
		db.Column('card_id', db.Integer, db.ForeignKey('cards.card_id'))
	)

card_subtypes_relationship = db.Table('subtypes_relationship',
		db.Column('id', db.Integer, db.ForeignKey('subtypes.id')),
		db.Column('card_id', db.Integer, db.ForeignKey('cards.card_id'))
	)


# TABLES FOR CARDS


class Colors(db.Model):
예제 #11
0
class Category(db.Model):
    __tablename__ = 'categories'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), unique=True, nullable=False)
    description = db.Column(db.String(1000), nullable=True)
    posts = db.relationship('Post', backref='categories', lazy=True)