Findr / App /models.py
PrashantGoyal's picture
Deploy backend to Hugging Face
11e7313
from flask_sqlalchemy import SQLAlchemy
import uuid
from sqlalchemy.dialects.postgresql import JSON,ARRAY
from sqlalchemy.ext.mutable import MutableList
db = SQLAlchemy()
class User(db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
first_name = db.Column(db.String(50), nullable=False)
last_name = db.Column(db.String(50), nullable=False)
email = db.Column(db.String(100), unique=True, nullable=False)
phone=db.Column(db.String(15), nullable=False)
password = db.Column(db.String(200), nullable=False)
class LostItem(db.Model):
__tablename__="lostItem"
id = db.Column(db.Integer, primary_key=True, index=True)
user_id = db.Column(db.Integer, db.ForeignKey("users.id"),nullable=False)
name=db.Column(db.String,nullable=False)
email=db.Column(db.String,nullable=False)
phone=db.Column(db.String,nullable=False)
description = db.Column(db.Text, nullable=False)
lastSeenLocation = db.Column(db.Text, nullable=False)
dateTimeLost = db.Column(db.Text, nullable=False)
reward = db.Column(db.Text)
additionalNotes = db.Column(db.Text)
image_url = db.Column(JSON, nullable=False)
status=db.Column(db.String,nullable=False,default='active')
found_items=db.Column(MutableList.as_mutable(ARRAY(db.String)),nullable=False)
created_at = db.Column(db.TIMESTAMP, server_default=db.func.now(),nullable=False)
class FoundItem(db.Model):
__tablename__="foundItem"
id = db.Column(db.Integer, primary_key=True, index=True)
user_id = db.Column(db.Integer, db.ForeignKey("users.id"),nullable=False)
name=db.Column(db.String,nullable=False)
email=db.Column(db.String,nullable=False)
phone=db.Column(db.String,nullable=False)
description = db.Column(db.Text, nullable=False)
found_near= db.Column(db.Text, nullable=False)
image_url = db.Column(JSON, nullable=False)
status=db.Column(db.String,nullable=False,default='active')
lost_items=db.Column(MutableList.as_mutable(ARRAY(db.String)),nullable=False)
created_at = db.Column(db.TIMESTAMP, server_default=db.func.now(),nullable=False)
class Match(db.Model):
__tablename__="matches"
id = db.Column(db.Integer, primary_key=True, index=True)
lost_item_id = db.Column(db.Integer, db.ForeignKey("lostItem.id"),nullable=False)
found_item_id = db.Column(db.Integer, db.ForeignKey("foundItem.id"),nullable=False)
confidence_score=db.Column(db.Float,nullable=False)
created_at = db.Column(db.TIMESTAMP, server_default=db.func.now(),nullable=False)