62 lines
1.8 KiB
Python

from datetime import datetime
# Import SQLAlchemy enum type
from sqlalchemy import Enum
# Import db
from accounts.models import db
# Import custom enum db column
from accounts.models.status import Status
from accounts.models.visit.visit_type import VisitType
class Visit(db.Model):
__tablename__ = 'visits'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
date_time = db.Column(db.DateTime, nullable=False)
owner_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
owner = db.relationship('User', back_populates='visits')
visit_type = db.Column(Enum(VisitType), default=VisitType.MEDIUM_WALK)
dog_id = db.Column(db.Integer, db.ForeignKey('dogs.id'), nullable=False)
dogs = db.relationship('Dog', back_populates='visits')
created_at = db.Column(db.DateTime, default=datetime.utcnow)
updated_at = db.Column(db.DateTime, onupdate=datetime.utcnow)
def __str__(self):
return self.date_time
def __repr__(self):
return self.to_dict()
def get_date(self):
year = self.date_time.year
month = self.date_time.month
day = self.date_time.month
return f'{year}-{month}-{day}'
def get_time(self):
hour = self.date_time.hour
minute = self.date_time.minute
if hour == 0 and minute == 0:
return 0
else:
return f'{hour}:{minute}'
def to_dict(self):
return {
'id': self.id,
'date_time': self.date_time,
'owner_id': self.owner_id,
'owner': self.owner,
'visit_type': self.visit_type,
'dog_id': self.dog_id,
'dogs': self.dogs,
'created_at': self.created_at,
'updated_at': self.update_at
}