from main import db, app, ma from sqlalchemy import Sequence from sqlalchemy.exc import SQLAlchemyError from shared import PA # DEL ME SOON from flask_login import login_required from flask import render_template import json # pylint: disable=no-member ################################################################################ # Class describing Face in the database and DB via sqlalchemy # - face contains the binary version of numpy array so we dont need to recalc it # - locn is the pixel coords of the face (top, right, bottom, left) # - refimg_lnk and facefile_lnk are viewOnly / just for convenience in viewer # - refimg is a real link to the refimg used for this face (its is only used in # viewer, and is either set when there is a matched face, or None if no match ################################################################################ class Face(db.Model): __tablename__ = "face" id = db.Column(db.Integer, db.Sequence('face_id_seq'), primary_key=True ) face = db.Column( db.LargeBinary ) locn = db.Column( db.String ) w = db.Column( db.Integer ) h = db.Column( db.Integer ) refimg_lnk = db.relationship("FaceRefimgLink", uselist=False, viewonly=True) facefile_lnk = db.relationship("FaceFileLink", uselist=False, viewonly=True) refimg =db.relationship("Refimg", secondary="face_refimg_link", uselist=False) def __repr__(self): return f"" class FaceNoMatchOverride(db.Model): __tablename__ = "face_no_match_override" id = db.Column(db.Integer, db.Sequence('face_override_id_seq'), primary_key=True ) face_id = db.Column(db.Integer, db.ForeignKey("face.id"), primary_key=True ) type_id = db.Column(db.Integer, db.ForeignKey("face_override_type.id")) type = db.relationship("FaceOverrideType") face = db.Column( db.LargeBinary ) def __repr__(self): return f"" class FaceManualOverride(db.Model): __tablename__ = "face_manual_override" id = db.Column(db.Integer, db.Sequence('face_override_id_seq'), primary_key=True ) face_id = db.Column(db.Integer, db.ForeignKey("face.id"), primary_key=True ) face = db.Column( db.LargeBinary ) person_id = db.Column(db.Integer, db.ForeignKey("person.id"), primary_key=True ) person = db.relationship("Person") def __repr__(self): return f""