Files
nCovTrack-Faker/model/person.py
2022-01-26 17:11:24 +08:00

45 lines
1.3 KiB
Python

from base import db
from enum import Enum
class Person(db.Model):
__tablename__ = 'faker_person'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(10), nullable=False)
sex = db.Column(db.SMALLINT, nullable=False)
age = db.Column(db.Integer, nullable=False)
address = db.Column(db.String(20), nullable=False)
identification = db.Column(db.String(18), nullable=False)
phone = db.Column(db.String(20), nullable=False)
@classmethod
def __from_dict__(cls, **data: dict):
obj = cls()
obj.__dict__.update(data)
return obj
def __to_dict__(self):
return {c.name: str(getattr(self, c.name)) for c in self.__table__.columns}
class SexEnum(Enum):
FEMALE = 0, ''
MALE = 1, ''
def __new__(cls, *values):
obj = object.__new__(cls)
# first value is canonical value
obj._value_ = values[0]
for other_value in values[1:]:
cls._value2member_map_[other_value] = obj
obj._all_values = values
obj.sex = values[1]
return obj
def __repr__(self):
return '<%s.%s: %s>' % (
self.__class__.__name__,
self._name_,
', '.join([repr(v) for v in self._all_values]),
)