class Cuisine(db.Model): __tablename__ = 'cuisines' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) restaurant_id = db.Column(db.Integer, db.ForeignKey('nyc_restaurants.id')) restaurant = db.relationship('Restaurant', back_populates='cuisine')
class Country(db.Model): __tablename__ = 'countries' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) strains = db.relationship('Strain', secondary='straincountries', back_populates='countries')
class Neighborhood(db.Model): __tablename__ = 'neighborhoods' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) zip_code = db.Column(db.Integer) restaurants = db.relationship('Restaurant', back_populates='neighborhood')
class WS_Winners(db.Model): __tablename__ = "ws_winners" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) year = db.Column(db.Integer) team_id = db.Column(db.Integer, db.ForeignKey('teams.id')) team = db.relationship('Team', backref=db.backref('ws_winners', lazy=True))
class Flavor(db.Model): __tablename__ = 'flavors' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) strains = db.relationship('Strain', secondary='strainflavors', back_populates='flavors')
class StrainCountry(db.Model): __tablename__ = 'straincountries' strain_id = db.Column(db.Integer, db.ForeignKey('strains.id'), primary_key=True) country_id = db.Column(db.Integer, db.ForeignKey('countries.id'), primary_key=True)
class StrainEffects(db.Model): __tablename__ = 'straineffects' strain_id = db.Column(db.Integer, db.ForeignKey('strains.id'), primary_key=True) effect_id = db.Column(db.Integer, db.ForeignKey('effects.id'), primary_key=True)
class Effect(db.Model): __tablename__ = 'effects' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) type = db.Column(db.Text) strains = db.relationship('Strain', secondary='straineffects', back_populates='effects')
class Suspect(db.Model): __tablename__ = 'suspects' id = db.Column(db.Integer, primary_key=True) age_group = db.Column(db.Text) race = db.Column(db.Text) gender = db.Column(db.Text) crimes = db.relationship("Crime_Event", back_populates="suspects")
class Michelin(db.Model): __tablename__ = 'michelin_info' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) stars = db.Column(db.Integer) restaurant_id = db.Column(db.Integer, db.ForeignKey('nyc_restaurants.id')) restaurant = db.relationship('Restaurant', back_populates='michelin_info')
class Victim(db.Model): #child __tablename__ = 'victims' id = db.Column(db.Integer, primary_key=True) age_group = db.Column(db.Text) race = db.Column(db.Text) gender = db.Column(db.Text) crimes = db.relationship("Crime_Event", back_populates="victims")
class ArtistGene(db.Model): __tablename__ = 'artists_genes' artist_id = db.Column(db.Integer, db.ForeignKey('artists.id'), primary_key=True) gene_id = db.Column(db.Integer, db.ForeignKey('genes.id'), primary_key=True)
class StrainFlavor(db.Model): __tablename__ = 'strainflavors' strain_id = db.Column(db.Integer, db.ForeignKey('strains.id'), primary_key=True) flavor_id = db.Column(db.Integer, db.ForeignKey('flavors.id'), primary_key=True)
class Coach(db.Model): #db.Model is the same as Base in original SQL Alchemy __tablename__ = 'coach' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) years = db.Column(db.Integer) salary = db.Column(db.Float) sal_school = db.Column(db.Text) # schools = relationship('School', secondary = 'joinedtable') schools = db.relationship('School', secondary='JoinedTable')
class Location(db.Model): __tablename__ = 'locations' id = db.Column(db.Integer, primary_key=True) latitude = db.Column(db.Float) longitude = db.Column(db.Float) precinct = db.Column(db.Integer) borough = db.Column(db.Text) crimes = db.relationship("Crime_Event", back_populates="locations")
class Culture(db.Model): __tablename__ = 'cultures' id = db.Column(db.Integer, primary_key=True) sc_1_4 = db.Column(db.Integer, nullable=False) sc_3_4 = db.Column(db.Integer, nullable=False) rating = db.relationship('Rating', back_populates='culture') rating_id = db.Column(db.Integer, db.ForeignKey('ratings.id'), nullable=False)
class Infatuation(db.Model): __tablename__ = 'infatuation_info' id = db.Column(db.Integer, primary_key=True) price = db.Column(db.Integer) rating = db.Column(db.Integer) restaurant_id = db.Column(db.Integer, db.ForeignKey('nyc_restaurants.id')) restaurant = db.relationship('Restaurant', back_populates='infatuation_info')
class Listing(db.Model): __tablename__ = 'listings' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.Text) housing = db.Column(db.Text) neighborhood = db.Column(db.Text) price = db.Column(db.Integer) @classmethod def most_expensive(cls): pass
class School(db.Model): __tablename__ = 'schools' id = db.Column(db.Integer, primary_key=True) dbn = db.Column(db.String, nullable=False) bn = db.Column(db.String, nullable=False) name = db.Column(db.String, nullable=False) #has_many schoolSATs sats = db.relationship('SchoolSAT', back_populates='school') ratings = db.relationship('Rating', back_populates='school') attendance_years = db.relationship('Attendance_Year', back_populates='school')
class Strain(db.Model): __tablename__ = 'strains' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) race = db.Column(db.Text) flavors = db.relationship('Flavor', secondary='strainflavors', back_populates='strains') effects = db.relationship('Effect', secondary='straineffects', back_populates='strains') countries = db.relationship('Country', secondary='straincountries', back_populates='strains')
class Defensive_Stats(db.Model): __tablename__ = 'defensive_stats' id = db.Column(db.Integer, primary_key=True) team_id = db.Column(db.Integer, db.ForeignKey('teams.id')) year = db.Column(db.Integer) losses = db.Column(db.Integer) runs_allowed = db.Column(db.Integer) earned_runs = db.Column(db.Integer) era = db.Column(db.Float) strikeouts = db.Column(db.Integer) field_percent = db.Column(db.Float) team = db.relationship('Team', backref=db.backref('defensive_stats', lazy=True))
class Rating(db.Model): __tablename__ = 'ratings' id = db.Column(db.Integer, primary_key=True) bn = db.Column(db.String, nullable=False) year = db.Column(db.Integer, nullable=False) overall = db.Column(db.Integer, nullable=False) school = db.relationship('School', back_populates='ratings') school_id = db.Column(db.Integer, db.ForeignKey('schools.id'), nullable=False) core = db.relationship('Core', uselist=False, back_populates='rating') culture = db.relationship('Culture', uselist=False, back_populates='rating') improvement = db.relationship('Improvement', uselist=False, back_populates='rating')
class Year(db.Model): __tablename__ = 'years' id = db.Column(db.Integer, primary_key=True) year = db.Column(db.Integer) rank = db.Column(db.Integer) artist_id = db.Column(db.Integer, db.ForeignKey('artists.id')) artist = db.relationship('Artist', back_populates='years') totalsold = db.Column(db.Integer) totallots = db.Column(db.Integer) maxprice = db.Column(db.Integer)
class Artist(db.Model): __tablename__ = 'artists' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) gender = db.Column(db.Text) birthday = db.Column(db.Integer) deathday = db.Column(db.Integer) # hometown = db.Column(db.Text) location = db.Column(db.Text) nationality = db.Column(db.Text) years = db.relationship('Year', back_populates='artist') genes = db.relationship('Gene', secondary='artists_genes')
class SchoolSAT(db.Model): __tablename__ = 'school_sats' id = db.Column(db.Integer, primary_key=True) year = db.Column(db.String, nullable=False) dbn = db.Column(db.String, nullable=False) math_avg = db.Column(db.Integer, nullable=False) reading_avg = db.Column(db.Integer, nullable=False) # overall_avg = db.Column(db.Integer, nullable=False) writing_avg = db.Column(db.Integer, nullable=False) takers = db.Column(db.Integer, nullable=False) #belongs to a school school_id = db.Column(db.Integer, db.ForeignKey('schools.id'), nullable=False) school = db.relationship('School', back_populates="sats")
class School(db.Model): __tablename__ = 'school' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) years = db.Column(db.Text) winloss = db.Column(Float) team_points = db.Column(Float) opp_points = db.Column(Float) # coaches = relationship('Coach', secondary = 'joinedtable') coaches = db.relationship('Coach', secondary='JoinedTable')
class Improvement(db.Model): __tablename__ = 'improvements' id = db.Column(db.Integer, primary_key=True) si_1_3 = db.Column(db.Integer, nullable=False) si_3_1 = db.Column(db.Integer, nullable=False) si_4_1 = db.Column(db.Integer, nullable=False) si_5_1 = db.Column(db.Integer, nullable=False) rating = db.relationship('Rating', back_populates='improvement') rating_id = db.Column(db.Integer, db.ForeignKey('ratings.id'), nullable=False)
class TripAdvisor(db.Model): __tablename__ = 'trip_advisor_info' id = db.Column(db.Integer, primary_key=True) price = db.Column(db.Integer) rating = db.Column(db.Integer) ranking = db.Column(db.Integer) number_reviews = db.Column(db.Integer) restaurant_id = db.Column(db.Integer, db.ForeignKey('nyc_restaurants.id')) restaurant = db.relationship('Restaurant', back_populates='trip_advisor_info')
class Restaurant(db.Model): __tablename__ = 'nyc_restaurants' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.Text) address = db.Column(db.Text) zip_code = db.Column(db.Integer) latitude = db.Column(db.Integer) longitude = db.Column(db.Integer) cuisine = db.relationship('Cuisine', back_populates='restaurant') trip_advisor_info = db.relationship('TripAdvisor', back_populates='restaurant') infatuation_info = db.relationship('Infatuation', back_populates='restaurant') michelin_info = db.relationship('Michelin', back_populates='restaurant') neighborhood_id = db.Column(db.Integer, db.ForeignKey('neighborhoods.id')) neighborhood = db.relationship('Neighborhood', back_populates='restaurants')
class Crime_Event(db.Model): #parent __tablename__ = 'crime_events' id = db.Column(db.Integer, primary_key=True) complaint_num = db.Column(db.Integer) date_of_occurance = db.Column(db.Date) time_of_occurance = db.Column(db.String) crime_completed_y_n = db.Column(db.Text) jurisdiction_code = db.Column(db.Text) jurisdiction_desc = db.Column(db.Text) report_date = db.Column(db.String) level_of_offense = db.Column(db.Text) offense_descr = db.Column(db.Text) location_id = db.Column(db.Integer, db.ForeignKey('locations.id')) victim_id = db.Column(db.Integer, db.ForeignKey('victims.id')) suspect_id = db.Column(db.Integer, db.ForeignKey('suspects.id')) locations = db.relationship("Location", back_populates="crimes") victims = db.relationship("Victim", back_populates="crimes") suspects = db.relationship("Suspect", back_populates="crimes")