Ejemplo n.º 1
0
Archivo: session.py Proyecto: 1pkg/rere
class Session(Alchemy.Model):
    __tablename__ = 'session'

    id = Alchemy.Column(
        Alchemy.Integer,
        nullable=False,
        primary_key=True,
    )
    user_device = Alchemy.Column(
        Alchemy.Enum(Device),
        nullable=False,
    )
    user_digest = Alchemy.Column(
        Alchemy.String,
        nullable=False,
    )
    user_agent = Alchemy.Column(
        Alchemy.String,
        nullable=False,
    )
    user_ip = Alchemy.Column(
        Alchemy.String,
        nullable=False,
    )
    token = Alchemy.Column(
        Alchemy.String,
        nullable=False,
        unique=True,
    )
    time_stamp = Alchemy.Column(
        Alchemy.DateTime,
        nullable=False,
        default=datetime.utcnow,
        server_default=Alchemy.func.now(),
        index=True,
    )
    account_id = Alchemy.Column(
        Alchemy.Integer,
        Alchemy.ForeignKey('account.id', ondelete='cascade'),
        nullable=False,
        index=True,
    )

    answers = Alchemy.relationship(
        'Answer',
        backref='session',
        passive_deletes=True,
    )
    marks = Alchemy.relationship(
        'Mark',
        backref='session',
        passive_deletes=True,
    )
    shares = Alchemy.relationship(
        'Share',
        backref='session',
        passive_deletes=True,
    )
Ejemplo n.º 2
0
class Task(Alchemy.Model):
    __tablename__ = 'task'

    id = Alchemy.Column(
        Alchemy.Integer,
        nullable=False,
        primary_key=True,
    )
    label = Alchemy.Column(
        Alchemy.String,
        nullable=False,
        unique=True,
    )
    active = Alchemy.Column(
        Alchemy.Boolean,
        nullable=False,
        default=True,
        index=True,
    )
    time_stamp = Alchemy.Column(
        Alchemy.DateTime,
        nullable=False,
        default=datetime.utcnow,
        server_default=Alchemy.func.now(),
        index=True,
    )
    subject_id = Alchemy.Column(
        Alchemy.Integer,
        Alchemy.ForeignKey('subject.id', ondelete='cascade'),
        nullable=False,
        index=True,
    )

    options = Alchemy.relationship(
        'Option',
        secondary='task_option',
    )
    effects = Alchemy.relationship(
        'Effect',
        secondary='task_effect',
    )
    answers = Alchemy.relationship(
        'Answer',
        backref='task',
        passive_deletes=True,
    )
    marks = Alchemy.relationship(
        'Mark',
        backref='task',
        passive_deletes=True,
    )
Ejemplo n.º 3
0
class Subject(Alchemy.Model):
    __tablename__ = 'subject'

    id = Alchemy.Column(
        Alchemy.Integer,
        nullable=False,
        primary_key=True,
    )
    link = Alchemy.Column(
        Alchemy.String,
        nullable=False,
        unique=True,
    )
    source = Alchemy.Column(
        Alchemy.String,
        nullable=False,
    )
    orientation = Alchemy.Column(
        Alchemy.Enum(Orientation),
        nullable=False,
        index=True,
    )
    option_id = Alchemy.Column(
        Alchemy.Integer,
        Alchemy.ForeignKey('option.id', ondelete='cascade'),
        nullable=False,
        index=True,
    )

    tasks = Alchemy.relationship(
        'Task',
        backref='subject',
        passive_deletes=True,
    )
Ejemplo n.º 4
0
Archivo: option.py Proyecto: 1pkg/rere
class Option(Alchemy.Model):
    __tablename__ = 'option'

    id = Alchemy.Column(
        Alchemy.Integer,
        nullable=False,
        primary_key=True,
    )
    name = Alchemy.Column(
        Alchemy.String,
        nullable=False,
        unique=True,
    )
    description = Alchemy.Column(
        Alchemy.String,
        nullable=False,
    )
    link = Alchemy.Column(
        Alchemy.String,
        nullable=False,
        unique=True,
    )
    source = Alchemy.Column(
        Alchemy.String,
        nullable=False,
    )

    subjects = Alchemy.relationship(
        'Subject',
        backref='option',
        passive_deletes=True,
    )
    answers = Alchemy.relationship(
        'Answer',
        backref='option',
        passive_deletes=True,
    )
Ejemplo n.º 5
0
Archivo: account.py Proyecto: 1pkg/rere
class Account(Alchemy.Model):
    __tablename__ = 'account'

    id = Alchemy.Column(
        Alchemy.Integer,
        nullable=False,
        primary_key=True,
    )
    uuid = Alchemy.Column(
        Alchemy.String,
        nullable=False,
        unique=True,
    )
    alias = Alchemy.Column(
        Alchemy.String,
        nullable=False,
        index=True,
    )
    score = Alchemy.Column(
        Alchemy.Integer,
        nullable=False,
        default=0,
        index=True,
    )
    freebie = Alchemy.Column(
        Alchemy.Integer,
        nullable=False,
        default=0,
    )
    factor = Alchemy.Column(
        Alchemy.Integer,
        nullable=False,
        default=1,
    )
    time_stamp = Alchemy.Column(
        Alchemy.DateTime,
        nullable=False,
        default=datetime.utcnow,
        server_default=Alchemy.func.now(),
    )

    sessions = Alchemy.relationship(
        'Session',
        backref='account',
        passive_deletes=True,
    )