Add country, city and venue.

This commit is contained in:
Edward Betts 2023-09-17 09:46:33 +05:30
parent a0df624f16
commit 301c389ba9
4 changed files with 134 additions and 1 deletions

View file

@ -41,6 +41,7 @@ class Conference(TimeStampedModel):
url = Column(String)
schedule_xml_url = Column(String)
short_name = Column(String, unique=True)
venue_id = Column(Integer, ForeignKey("venue.id"))
people_detail = relationship(
"ConferencePerson", lazy="dynamic", back_populates="conference"
@ -54,6 +55,46 @@ class Conference(TimeStampedModel):
lazy="dynamic",
)
venue = relationship("Venue", back_populates="conferences")
class City(TimeStampedModel):
"""City."""
__tablename__ = "city"
id = Column(Integer, primary_key=True)
slug = Column(String, nullable=False, unique=True)
name = Column(String, nullable=False)
country_code = Column(String, ForeignKey("country.alpha2"), nullable=False)
wikidata_qid = Column(String, nullable=False)
venues = relationship("Venue", back_populates="city")
country = relationship("Country", back_populates="cities")
class Venue(TimeStampedModel):
"""Venue."""
__tablename__ = "venue"
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
city_id = Column(Integer, ForeignKey("city.id"))
wikidata_qid = Column(String, nullable=False)
conferences = relationship("Conference", back_populates="venue")
city = relationship("City", back_populates="venues")
class Country(TimeStampedModel):
"""Country."""
__tablename__ = "country"
alpha2 = Column(String, primary_key=True)
name = Column(String)
wikidata_qid = Column(String, nullable=False)
cities = relationship("City", back_populates="country")
class ConferencePerson(Base):
__tablename__ = "conference_person"