text: # coding: utf-8
  """
  This modules defines an SQLAlchemy ORM model for a postal code opendata.
  """
  # pylint: disable=locally-disabled,invalid-name,too-few-public-methods
  from __future__ import absolute_import, print_function, unicode_literals
  
  import logging
  
  from sqlalchemy import (
      Column, Float, Integer, String, UniqueConstraint
  )
  
  from flatisfy.database.base import BASE
  
  
  LOGGER = logging.getLogger(__name__)
  
  
  class PostalCode(BASE):
      """
      SQLAlchemy ORM model to store a postal code opendata.
      """
      __tablename__ = "postal_codes"
  
      id = Column(Integer, primary_key=True)
      # Area is an identifier to prevent loading unnecessary stops. For now it is
      # following ISO 3166-2.
      area = Column(String, index=True)
      postal_code = Column(String, index=True)
      name = Column(String, index=True)
      lat = Column(Float)
      lng = Column(Float)
      UniqueConstraint("postal_code", "name")
  
      def __repr__(self):
          return "<PostalCode(id=%s)>" % self.id
  
      def json_api_repr(self):
          """
          Return a dict representation of this postal code object that is JSON
          serializable.
          """
          return {
              k: v
              for k, v in self.__dict__.items()
              if not k.startswith("_")
          }
  