Source code for carepoint.models.address_mixin
# -*- coding: utf-8 -*-
# Copyright 2016 LasLabs Inc.
# License MIT (https://opensource.org/licenses/MIT).
import enum
from sqlalchemy import (Column,
Integer,
DateTime,
ForeignKey,
)
from sqlalchemy.types import Enum
from sqlalchemy.ext.declarative import declared_attr
[docs]class EnumAddressType(enum.Enum):
""" It provides PEP-0435 compliant Carepoint Address Type Enumerable """
business = 1
home = 2
school = 3
vacation = 4
other = 5
billing = 6
shipping = 7
[docs]class AddressMixin(object):
""" This is a mixin for Address Many2Many bindings """
priority = Column(Integer)
addr_type_cn = Column(Integer)
app_flags = Column(Integer)
timestmp = Column(DateTime)
@declared_attr
def addr_id(cls):
return Column(
Integer,
ForeignKey('csaddr.addr_id'),
primary_key=True,
)
@property
def addr_type(self):
return EnumAddressType(self.addr_type_cn)