Exemple #1
0
class User(db.Model):
    __tablename__ = "users"

    user_id = db.Column(db.Integer(), primary_key=True)
    firstname = db.Column(db.String(), nullable=False)
    lastname = db.Column(db.String(), nullable=False)
    score = db.Column(db.Integer(), nullable=False)
class Question(db.Model):
    __tablename__ = "question"
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.String)
    correct_answer = db.Column(db.String)
    score = db.Column(db.Integer)
    theme_id = db.Column(db.Integer, db.ForeignKey("theme.id"))
Exemple #3
0
class UserSession(db.Model):
    __tablename__ = "user_session"

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.user_id"))
    session_id = db.Column(db.Integer, db.ForeignKey("session.id"))
    score = db.Column(db.Integer, default=0)
Exemple #4
0
class TicketFlight(db.Model, DCConverter):
    __tablename__ = "ticket_flights"

    ticket_no = db.Column(db.String(13), nullable=False)
    flight_id = db.Column(db.Integer(), nullable=False)
    fare_conditions = db.Column(db.String(10), nullable=False)
    amount = db.Column(db.Numeric(), nullable=False)
Exemple #5
0
class Ticket(db.Model, DCConverter):
    __tablename__ = "tickets"

    ticket_no = db.Column(db.String(13), primary_key=True)
    book_ref = db.Column(db.String(6), nullable=False)
    passenger_id = db.Column(db.String(20), nullable=False, index=True)
    passenger_name = db.Column(db.Text(), nullable=False)
    contact_data = db.Column(JSONB)
Exemple #6
0
class GameSession(db.Model):
    __tablename__ = "game_sessions"

    id = db.Column(db.Integer(), primary_key=True)
    chat_id = db.Column(db.Integer(), nullable=False)
    questions = db.Column(ARRAY(db.Integer()), nullable=False)
    last_question_id = db.Column(db.Integer(), nullable=False)
    is_finished = db.Column(db.Boolean(),
                            nullable=False)  # todo: add constraint
Exemple #7
0
class Answer(db.Model):
    __tablename__ = "answers"

    id = db.Column(db.Integer(), primary_key=True)
    question_id = db.Column(db.Integer(),
                            db.ForeignKey("questions.id"),
                            nullable=False)
    title = db.Column(db.String(), nullable=False)
    is_right = db.Column(db.Boolean(), nullable=False)
Exemple #8
0
class Session(db.Model):
    __tablename__ = "session"
    id = db.Column(db.Integer, primary_key=True)
    chat_id = db.Column(db.Integer)
    status = db.Column(
        db.Enum(SessionStatus),
        nullable=False,
        default=SessionStatus.active,
    )
class Round(db.Model):
    __tablename__ = "round"
    id = db.Column(db.Integer, primary_key=True)
    session_id = db.Column(db.Integer, db.ForeignKey("session.id"))
    number = db.Column(db.Integer)
    status = db.Column(
        db.Enum(RoundStatus),
        nullable=False,
        default=RoundStatus.active,
    )
Exemple #10
0
class Answer(db.Model):
    __tablename__ = "answer"
    id = db.Column(db.Integer, primary_key=True)
    status = db.Column(
        db.Enum(AnswerStatus),
        nullable=False,
        default=AnswerStatus.correct,
    )
    rq_id = db.Column(db.Integer, db.ForeignKey(RoundQuestion.id))
    user_id = db.Column(db.Integer, db.ForeignKey(User.user_id))
    created_at = db.Column(db.DateTime, default=datetime.datetime.now)
class RoundQuestion(db.Model):
    __tablename__ = "round_question"
    id = db.Column(db.Integer, primary_key=True)
    status = db.Column(
        db.Enum(RoundQuestionStatus),
        nullable=False,
        default=RoundQuestionStatus.active,
    )
    round_id = db.Column(db.Integer, db.ForeignKey("round.id"))
    question_id = db.Column(db.Integer, db.ForeignKey("question.id"))
    created_at = db.Column(db.DateTime)
Exemple #12
0
class SessionScores(db.Model):
    __tablename__ = "session_scores"

    id = db.Column(db.Integer(), primary_key=True)
    session_id = db.Column(db.Integer(),
                           db.ForeignKey("game_sessions.id",
                                         ondelete='CASCADE'),
                           nullable=False)
    user_id = db.Column(db.Integer(),
                        db.ForeignKey("users.user_id", ondelete='CASCADE'),
                        nullable=False)
    score = db.Column(db.Integer(), nullable=False)
Exemple #13
0
class Airport(db.Model, DCConverter):
    __tablename__ = "airports"

    airport_code = db.Column(db.String(3), primary_key=True)
    airport_name = db.Column(db.Text(), nullable=False)
    city = db.Column(db.Text(), nullable=False)
    longitude = db.Column(db.Float(), nullable=False)
    latitude = db.Column(db.Float(), nullable=False)
    timezone = db.Column(db.Text(), nullable=False)

    def to_dc(self) -> "AirportDC":
        from app.avia.schemas import AirportDC

        a = 5

        return AirportDC.Schema().load(self.__values__)
class User(db.Model):
    __tablename__ = "user"
    user_id = db.Column(db.Integer, primary_key=True)
Exemple #15
0
class Flight(db.Model, DCConverter):
    __tablename__ = "flights"

    flight_id = db.Column(db.Integer(), primary_key=True)
    flight_no = db.Column(db.String(6), nullable=False)
    scheduled_departure = db.Column(db.DateTime(timezone=True), nullable=False)
    scheduled_arrival = db.Column(db.DateTime(timezone=True), nullable=False)
    departure_airport = db.Column(db.String(3),
                                  db.ForeignKey("airports.airport_code"),
                                  nullable=False)
    arrival_airport = db.Column(db.String(3),
                                db.ForeignKey("airports.airport_code"),
                                nullable=False)
    status = db.Column(db.String(20), nullable=False)
    aircraft_code = db.Column(db.String(3), nullable=False)
    actual_departure = db.Column(db.DateTime(timezone=True), nullable=True)
    actual_arrival = db.Column(db.DateTime(timezone=True), nullable=True)

    def __init__(self, **kw):
        super().__init__(**kw)
        self._departure_airport_info: Optional[Airport] = None
        self._arrival_airport_info: Optional[Airport] = None

    def to_dc(self) -> "FlightDC":
        from app.avia.schemas import FlightDC

        flight = FlightDC.Schema().load({
            **self.__values__,
            "scheduled_departure":
            self.scheduled_departure.isoformat(),
            "scheduled_arrival":
            self.scheduled_arrival.isoformat(),
            "actual_departure":
            None if self.scheduled_arrival is None else
            self.actual_departure.isoformat(),
            "actual_arrival":
            None if self.actual_arrival is None else
            self.actual_arrival.isoformat(),
            "departure_airport_info":
            None if self._departure_airport_info is None else
            self._departure_airport_info.__values__,
            "arrival_airport_info":
            None if self._arrival_airport_info is None else
            self._arrival_airport_info.__values__,
        })
        return flight

    @property
    def departure_airport_info(self) -> Optional[Airport]:
        return self

    @departure_airport_info.setter
    def departure_airport_info(self, airport: Optional[Airport]):
        self._departure_airport_info = airport

    @property
    def arrival_airport_info(self) -> Optional[Airport]:
        return self

    @arrival_airport_info.setter
    def arrival_airport_info(self, airport: Optional[Airport]):
        self._arrival_airport_info = airport
Exemple #16
0
class Question(db.Model):
    __tablename__ = "questions"

    id = db.Column(db.Integer(), primary_key=True)
    theme = db.Column(db.String(50), nullable=False)
    title = db.Column(db.String(), nullable=False)
class UserSession(db.Model):
    __tablename__ = "user_session"
    user_id = db.Column(db.Integer, db.ForeignKey("user.user_id"))
    session_id = db.Column(db.Integer, db.ForeignKey("session.id"))
    score = db.Column(db.Integer)
class ThemeRound(db.Model):
    __tablename__ = "theme_round"
    theme_id = db.Column(db.Integer, db.ForeignKey("theme.id"))
    round_id = db.Column(db.Integer, db.ForeignKey("round.id"))
class Theme(db.Model):
    __tablename__ = "theme"
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String)
class Session(db.Model):
    __tablename__ = "session"
    id = db.Column(db.Integer, primary_key=True)
    chat_id = db.Column(db.Integer)
    status = db.Column(db.Integer)