class Conversation(db.Model): __tablename__ = 'conversation' id = col(db.Integer, primary_key=True) time_started = col(db.DateTime, default=datetime.utcnow) messages = db.relationship('Message', back_populates='conversations') dogs = db.relationship('Dog', secondary=dog_conversation, back_populates='conversations')
class Message(db.Model): __tablename__ = 'message' id = col(db.Integer, primary_key=True) message = col(db.Text, nullable=False) ts = col(db.DateTime, default=datetime.utcnow) dog_id = col(db.Integer, db.ForeignKey('dog.id'), nullable=False) conversation_id = col(db.Integer, db.ForeignKey('conversation.id')) conversations = db.relationship('Conversation', back_populates='messages') dogs = db.relationship('Dog', back_populates='messages')
from app.models import db, ma, col from marshmallow import fields from datetime import datetime from app.models.breed_model import BreedSchema from app.models.photos_model import PhotoSchema from app.models.interest_model import InterestSchema dog_conversation = db.Table( 'dog_conversation', col('dog_id', db.Integer, db.ForeignKey('dog.id', ondelete="CASCADE")), col('conversation_id', db.Integer, db.ForeignKey('conversation.id', ondelete="CASCADE"))) class Dog(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), nullable=False) details = db.Column(db.String(300), nullable=True) owner_id = db.Column(db.Integer, db.ForeignKey('owner.id', ondelete="CASCADE")) breed_id = db.Column(db.Integer, db.ForeignKey('breed.id')) gender = db.Column(db.Boolean, nullable=False) breed = db.relationship("Breed", backref="dog", cascade="all, delete") photos = db.relationship("Photo", backref="dog", cascade="all, delete", passive_deletes=True) interest = db.relationship("Interest", backref="dog", cascade="all, delete")
from __future__ import annotations from app.models import db, ma, col from marshmallow import fields from datetime import datetime from app.models.breed_model import BreedSchema from app.models.photos_model import PhotoSchema from app.models.interest_model import InterestSchema dog_conversation = db.Table( 'dog_conversation', col('dog_id', db.Integer, db.ForeignKey('dog.id')), col('conversation_id', db.Integer, db.ForeignKey('conversation.id'))) class Dog(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), nullable=False) details = db.Column(db.String(300), nullable=True) owner_id = db.Column(db.Integer, db.ForeignKey('owner.id')) breed_id = db.Column(db.Integer, db.ForeignKey('breed.id')) gender = db.Column(db.Boolean, nullable=False) breed = db.relationship("Breed", backref="dog") photos = db.relationship("Photo", backref="dog") interest = db.relationship("Interest", backref="dog") conversations = db.relationship('Conversation', secondary=dog_conversation, back_populates='dogs') messages = db.relationship('Message', back_populates='dogs')