Source code for carepoint.models.phone_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 EnumPhoneType(enum.Enum):
""" It provides PEP-0435 compliant Carepoint Phone Type Enumerable """
assistant = 1
business = 2
business_2 = 3
business_fax = 4
car = 5
home = 6
home_2 = 7
home_fax = 8
mobile = 9
beeper = 10
other_fax = 11
[docs]class PhoneMixin(object):
""" This is a mixin for Phone Many2Many bindings """
priority = Column(Integer)
phone_type_cn = Column(Integer)
app_flags = Column(Integer)
timestmp = Column(DateTime)
@declared_attr
def phone_id(cls):
return Column(
Integer,
ForeignKey('csphone.phone_id'),
primary_key=True,
)
@property
def phone_type(self):
return EnumPhoneType(self.phone_type_cn)