Add MemberDate and MemberContact models to schema

This commit is contained in:
Lance Edgar 2019-10-25 16:29:59 -05:00
parent a15b6eace2
commit 9ae1a04cad

View file

@ -495,6 +495,20 @@ class MemberInfo(Base):
List of :class:`Customer` instances which are associated with this member info. List of :class:`Customer` instances which are associated with this member info.
""") """)
dates = orm.relationship(
'MemberDate',
primaryjoin='MemberDate.card_number == MemberInfo.card_number',
foreign_keys='MemberDate.card_number',
cascade='all, delete-orphan',
doc="""
List of date records for the member.
""",
backref=orm.backref(
'member',
doc="""
Reference to the member to whom the date record applies.
"""))
@property @property
def full_name(self): def full_name(self):
return '{} {}'.format(self.first_name or '', self.last_name or '').strip() return '{} {}'.format(self.first_name or '', self.last_name or '').strip()
@ -503,6 +517,55 @@ class MemberInfo(Base):
return self.full_name return self.full_name
@six.python_2_unicode_compatible
class MemberDate(Base):
"""
Join/exit dates for members
"""
__tablename__ = 'memDates'
card_number = sa.Column('card_no', sa.Integer(), primary_key=True, autoincrement=False, nullable=False)
start_date = sa.Column(sa.DateTime(), nullable=True)
end_date = sa.Column(sa.DateTime(), nullable=True)
def __str__(self):
return "{} thru {}".format(
self.start_date.date() if self.start_date else "??",
self.end_date.date() if self.end_date else "??")
@six.python_2_unicode_compatible
class MemberContact(Base):
"""
Contact preferences for members
"""
__tablename__ = 'memContact'
card_number = sa.Column('card_no', sa.Integer(), primary_key=True, autoincrement=False, nullable=False)
preference = sa.Column('pref', sa.Integer(), nullable=True)
member = orm.relationship(
MemberInfo,
primaryjoin=MemberInfo.card_number == card_number,
foreign_keys=[MemberInfo.card_number],
uselist=False,
doc="""
Reference to the member to whom the contact record applies.
""",
backref=orm.backref(
'contact',
uselist=False,
doc="""
Reference to contact preference record for the member.
"""))
def __str__(self):
return str(self.preference)
@six.python_2_unicode_compatible @six.python_2_unicode_compatible
class HouseCoupon(Base): class HouseCoupon(Base):
""" """