# Standard library imports from datetime import datetime from sqlalchemy import Enum # Import db from accounts.models import db from accounts.models.dog.breed_size import BreedSize from accounts.models.status import Status class Dog(db.Model): __tablename__ = 'dogs' id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String, nullable=False) breed_size = db.Column(Enum(BreedSize), default=BreedSize.MEDIUM) age = db.Column(db.DateTime, default=datetime(1970, 1, 1, 0, 0, 0)) owner_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) owner = db.relationship('User', back_populates='dogs') visits = db.relationship('Visit', back_populates='dogs') status = db.Column(Enum(Status), default=Status.ACTIVE) created_at = db.Column(db.DateTime, default=datetime.utcnow) updated_at = db.Column(db.DateTime, onupdate=datetime.utcnow) def __repr__(self): return f'{self.name}' def to_dict(self): return { 'name': self.name, 'breed': self.breed, 'owner': self.owner }