""" Country Model. Model for getting information about countries. """ from sqlalchemy import Column, Enum, Float, Integer, SmallInteger, String from contracts.connectors import mysql class Country(mysql.BaseModel): """Country class.""" __tablename__ = 'country' id = Column(Integer, primary_key=True) # noqa B001, B003 name = Column(String, nullable=False) country_code = Column(String, unique=True) abbrivation = Column(String, nullable=False, index=True) continent = Column( Enum( 'Africa', 'Antarctica', 'Asia', 'Europe', 'North America', 'Oceania', 'South America', ), nullable=False, ) latitude = Column(Float) longitude = Column(Float) iso3166a3 = Column(String) continent_id = Column(SmallInteger) def to_dict(self): """Get a dict representation.""" return { 'id': self.id, 'name': self.name, 'country_code': self.country_code, 'abbrivation': self.abbrivation, 'continent': self.continent, 'latitude': self.latitude, 'longitude': self.longitude, 'iso3166a3': self.iso3166a3, 'continent_id': self.continent_id, }