diff --git a/app/models/adoption_status.py b/app/models/adoption_status.py new file mode 100644 index 0000000..db47873 --- /dev/null +++ b/app/models/adoption_status.py @@ -0,0 +1,5 @@ +from app.extensions import db + +class AdoptionStatus(db.Model): + id = db.Column(db.Integer, primary_key=True) + status = db.Column(db.String(255), nullable=False) \ No newline at end of file diff --git a/app/models/adoptions.py b/app/models/adoptions.py new file mode 100644 index 0000000..a0e8f92 --- /dev/null +++ b/app/models/adoptions.py @@ -0,0 +1,13 @@ +from app.extensions import db +import datetime +from sqlalchemy.orm import relationship, mapped_column + +class Adoptions(db.Model) : + id = mapped_column(db.Integer, primary_key=True) + publisher_id = mapped_column(db.Integer, db.ForeignKey('user.id'), nullable=False) + pet_id = mapped_column(db.Integer, db.ForeignKey('pet.id'), nullable=False) + publish_date = mapped_column(db.DateTime, default=datetime.datetime.utcnow, nullable=False) + status_id = mapped_column(db.Integer, db.ForeignKey('adoption_status.id'), nullable=False) + publisher = relationship("User") + pet = relationship("Pet") + status = relationship("AdoptionStatus") \ No newline at end of file diff --git a/app/models/pet.py b/app/models/pet.py new file mode 100644 index 0000000..b4df0df --- /dev/null +++ b/app/models/pet.py @@ -0,0 +1,15 @@ +import datetime +from sqlalchemy.orm import relationship, mapped_column +from app.extensions import db + +class Pet(db.Model): + id = mapped_column(db.Integer, primary_key=True) + name = mapped_column(db.String(255), nullable=False) + kind_id = mapped_column(db.Integer, db.ForeignKey('pet_kind.id'), nullable=False) + age = mapped_column(db.Integer, default=0, nullable=False) + weight = mapped_column(db.Float, default=0, nullable=False) + location = mapped_column(db.String(255), nullable=False) + sex = mapped_column(db.String(1), nullable=False) + height = mapped_column(db.Float, default=0, nullable=False) + registration_date = mapped_column(db.DateTime, default=datetime.datetime.utcnow, nullable=False) + kind = relationship("PetKind") \ No newline at end of file diff --git a/app/models/pet_kind.py b/app/models/pet_kind.py new file mode 100644 index 0000000..9aa5671 --- /dev/null +++ b/app/models/pet_kind.py @@ -0,0 +1,5 @@ +from app.extensions import db + +class PetKind(db.Model): + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(255), nullable=False) \ No newline at end of file diff --git a/app/models/user.py b/app/models/user.py new file mode 100644 index 0000000..f78da58 --- /dev/null +++ b/app/models/user.py @@ -0,0 +1,15 @@ +import datetime +from sqlalchemy.orm import mapped_column +from app.extensions import db + +class User(db.Model): + id = mapped_column(db.Integer, primary_key=True) + username = mapped_column(db.String(255), nullable=False) + email = mapped_column(db.String(255), nullable=False) + password = mapped_column(db.Text, nullable=False) + name = mapped_column(db.String(255), nullable=False) + lastname = mapped_column(db.String(255), nullable=False) + birth_date = mapped_column(db.Date, nullable=False) + address = mapped_column(db.String(255), nullable=False) + phone_number = mapped_column(db.String(255), nullable=False) + registration_date = mapped_column(db.DateTime, default=datetime.datetime.utcnow, nullable=False) \ No newline at end of file