From cc4fe8cea4bbcc2865a7bad9a72f881bfaff072a Mon Sep 17 00:00:00 2001 From: Cara Salter Date: Fri, 1 Dec 2023 13:26:06 -0500 Subject: [PATCH] Scaffold event models Will be used to check people into workshops and meals to track event attendance over time, could be used to generate a dynamic schedule Signed-Off-By: Cara Salter --- goathacks/models.py | 43 ++++++++++++++++++- .../d6917765911f_create_event_table.py | 24 +++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 migrations/versions/d6917765911f_create_event_table.py diff --git a/goathacks/models.py b/goathacks/models.py index 03d206d..709e0d8 100644 --- a/goathacks/models.py +++ b/goathacks/models.py @@ -41,7 +41,6 @@ class User(db.Model, UserMixin): return hackers - @login.user_loader def user_loader(user_id): return User.query.filter_by(id=user_id).first() @@ -56,3 +55,45 @@ class PwResetRequest(db.Model): id = Column(String, primary_key=True) user_id = Column(Integer, ForeignKey('user.id'), nullable=False) expires = Column(DateTime, nullable=False) + + +""" +Represents an event within the hackathon, that can be checked into +""" +class Event(db.Model): + id = Column(Integer, primary_key=True) + name = Column(String, nullable=False) + description = Column(String, nullable=True) + location = Column(String, nullable=False) + start_time = Column(DateTime, nullable=False) + end_time = Column(DateTime, nullable=False) + category = Column(String, nullable=True) + + def create_json_output(lis): + events = [] + + for e in lis: + events.append({ + 'id': e.id, + 'name': e.name, + 'description': e.description, + 'location': e.location, + 'start': e.start_time, + 'end': e.end_time, + 'category': e.category + }) + + return events + + def get_checkins(self): + checkins = EventCheckins.query.filter_by(event_id=self.id).all() + + return checkins + + + +class EventCheckins(db.Model): + __tablename__ = "event_checkins" + id = Column(Integer, primary_key=True) + event_id = Column(Integer, ForeignKey('event.id'), nullable=False) + user_id = Column(Integer, ForeignKey('user.id'), nullable=False) diff --git a/migrations/versions/d6917765911f_create_event_table.py b/migrations/versions/d6917765911f_create_event_table.py new file mode 100644 index 0000000..da2a817 --- /dev/null +++ b/migrations/versions/d6917765911f_create_event_table.py @@ -0,0 +1,24 @@ +"""create event table + +Revision ID: d6917765911f +Revises: 261c004968a4 +Create Date: 2023-12-01 13:22:41.055221 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'd6917765911f' +down_revision = '261c004968a4' +branch_labels = None +depends_on = None + + +def upgrade(): + pass + + +def downgrade(): + pass