class City(db.Model): __tablename__ = 'City' id = db.Column(db.Integer, primary_key=True) city = db.Column(db.String(120), nullable=False, unique=True) state_id = db.Column(db.Integer, db.ForeignKey('State.id'), nullable=False) venues = db.relationship('Venue', backref='city_', lazy=True) artists = db.relationship('Artist', backref='city_', lazy=True)
class Venue(db.Model): __tablename__ = 'venues' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) address = db.Column(db.String(120)) city = db.Column(db.String(120)) state = db.Column(db.String(120)) phone = db.Column(db.String(120), nullable=True) seeking_talent = db.Column(db.Boolean, default=True) website = db.Column(db.String(120)) facebook_link = db.Column( db.String(120), default='https://www.facebook.com/theduelingpianos') image_link = db.Column( db.String(500), default= 'https://images.unsplash.com/photo-1543900694-133f37abaaa5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=400&q=60' ) seeking_description = db.Column(db.Text, nullable=True) genres = db.relationship('Genre', secondary=GenreVenue, backref=db.backref('Venue', lazy=True)) shows = db.relationship('Show', backref='Venue', lazy=True) created_at = db.Column( db.DateTime, nullable=True, ) updated_at = db.Column( db.DateTime, nullable=True, )
class Artist(db.Model): __tablename__ = 'Artist' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) phone = db.Column(db.String(120)) website = db.Column(db.String(256)) image_link = db.Column(db.String(500)) facebook_link = db.Column(db.String(120)) city_id = db.Column(db.Integer, db.ForeignKey('City.id'), nullable=False) shows = db.relationship('Show', backref='_artist', lazy=True) seeking_venue = db.Column(db.Boolean, unique=False, default=True) seeking_description = db.Column(db.Text(), nullable=True) shows = db.relationship('Show', backref='artist_', lazy=True) genres = db.relationship('Genre', secondary=artist_genres, lazy='subquery', backref=db.backref('_artist', lazy=True))
class Artist(db.Model): __tablename__ = 'artists' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) city = db.Column(db.String(120)) state = db.Column(db.String(120)) phone = db.Column(db.String(120), nullable=True) seeking_venue = db.Column(db.Boolean, default=True) website = db.Column(db.String(120)) facebook_link = db.Column(db.String(120)) image_link = db.Column( db.String(500), default= 'https://images.unsplash.com/photo-1549213783-8284d0336c4f?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=300&q=80' ) seeking_description = db.Column(db.Text, nullable=True) shows = db.relationship('Show', backref='Artist', lazy=True) genres = db.relationship('Genre', secondary=ArtistGenre, backref=db.backref('Artist', lazy=True)) created_at = db.Column( db.DateTime, nullable=True, ) updated_at = db.Column( db.DateTime, nullable=True, )
class Venue(db.Model): __tablename__ = 'venues' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) city = db.Column(db.String(120)) state = db.Column(db.String(120)) address = db.Column(db.String(120)) phone = db.Column(db.String(120)) image_link = db.Column(db.String(500)) website = db.Column(db.String(120)) facebook_link = db.Column(db.String(120)) seeking_talent = db.Column(db.Boolean, nullable=False, default=False) seeking_description = db.Column(db.String(120)) created_at = db.Column(db.DateTime, nullable=False, server_default=func.now()) genres = db.relationship('Genre', secondary=genres_venues, backref=db.backref('venues', lazy=True)) shows = db.relationship('Show', backref='venue', lazy='dynamic') def past_shows(self): return self.shows.filter(Show.start_time < datetime.today()).all() def past_shows_count(self): return self.shows.filter(Show.start_time < datetime.today()).count() def upcoming_shows(self): return self.shows.filter(Show.start_time > datetime.today()).all() def upcoming_shows_count(self): return self.shows.filter(Show.start_time > datetime.today()).count() def to_dict(self): return { 'id': self.id, 'name': self.name, 'city': self.city, 'state': self.state, 'address': self.address, 'phone': self.phone, 'genres': [g.name for g in self.genres], 'image_link': self.image_link, 'facebook_link': self.facebook_link, 'website': self.website, 'seeking_talent': self.seeking_talent, 'seeking_description': self.seeking_description }
class Venue(db.Model): __tablename__ = 'Venue' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False, unique=True) genres = db.Column(db.String(120)) city = db.Column(db.String(120), nullable=False) state = db.Column(db.String(120), nullable=False) address = db.Column(db.String(120)) phone = db.Column(db.String(120)) website = db.Column(db.String(120)) seeking_talent = db.Column(db.Boolean) seeking_description = db.Column(db.String(120)) image_link = db.Column(db.String(500)) facebook_link = db.Column(db.String(120)) # past_shows_count = db.Column(db.Integer, nullable=False) # upcoming_shows_count = db.Column(db.Integer, nullable=False) # Done: implement any missing fields, as a database migration using Flask-Migrate shows_venue = db.relationship('Show', backref='venue', lazy=True) def __repr__(self): return f"Venue ID: {self.id} Venue name: {self.name}"
class Venue(db.Model): __tablename__ = 'Venue' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) city = db.Column(db.String(120)) state = db.Column(db.String(120)) address = db.Column(db.String(120)) phone = db.Column(db.String(120)) image_link = db.Column(db.String(120), default='default.jpeg') facebook_link = db.Column(db.String(120), nullable=True) genres = db.Column(db.ARRAY(db.String)) website = db.Column(db.String(120), nullable=True) seeking_talent = db.Column(db.Boolean(), default=False) seeking_description = db.Column(db.String(500), nullable=True) def __repr__(self): return f'<Venue {self.name}>' def seperate_genres(self): genres = "".join(self.genres[1:-1]).split(",") return [genre if genre[0] != '"' else genre[1:-1] for genre in genres]
class Venue(db.Model): __tablename__ = 'venues' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False) city = db.Column(db.String(120)) state = db.Column(db.String(120), nullable=False) address = db.Column(db.String(120)) phone = db.Column(db.String(120)) image_link = db.Column(db.String(500)) genres = db.Column(db.String, nullable=False) facebook_link = db.Column(db.String(120)) website = db.Column(db.String(120)) seeking_talent = db.Column(db.Boolean, default=False) seeking_description = db.Column(db.String) shows = db.relationship('Show', backref='venue') def __repr__(self): return f'<Venue {self.id}, {self.name}, {self.city}, {self.state}>'
class Artist(db.Model): __tablename__ = 'artists' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, nullable=False) city = db.Column(db.String(120)) state = db.Column(db.String(120), nullable=False) phone = db.Column(db.String(120)) genres = db.Column(db.String(120)) image_link = db.Column(db.String(500)) facebook_link = db.Column(db.String(120)) website_link = db.Column(db.String) seeking_venue = db.Column(db.Boolean, default=False) seeking_description = db.Column(db.String) shows = db.relationship('Show', backref='artist', lazy=True) availability = db.relationship('Availability', backref='artist', lazy=True)
class Venue(db.Model): __tablename__ = 'venue' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) genres = db.Column(db.ARRAY(db.String)) address = db.Column(db.String(120)) city = db.Column(db.String(120)) state = db.Column(db.String(120)) # limit phone to 10 digits phone = db.Column(db.String(10)) website = db.Column(db.String(120)) facebook_link = db.Column(db.String(120)) image_link = db.Column(db.String(500)) seeking_talent = db.Column(db.Boolean) seeking_description = db.Column(db.String) # tell the DB to calculate the value itself # use server_default instead of default - should end up in CREATE TABLE time_created = db.Column(postgresql.TIMESTAMP(timezone=True), server_default=func.now()) # server_onupdate doesn't do anything serverside time_updated = db.Column(postgresql.TIMESTAMP(timezone=True), onupdate=func.now()) venue_shows = db.relationship('Show', backref='venue_shows', lazy=True)
class State(db.Model): __tablename__ = 'State' id = db.Column(db.Integer, primary_key=True) state = db.Column(db.String(120), nullable=False, unique=True) cities = db.relationship('City', backref='state_', lazy=True)
class Genre(db.Model): __tablename__ = 'Genre' id = db.Column(db.Integer, primary_key=True) genre = db.Column(db.String(120), nullable=False, unique=True)