Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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,
    )
Exemplo n.º 3
0
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))
Exemplo n.º 4
0
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,
    )
Exemplo n.º 5
0
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
        }
Exemplo n.º 6
0
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}"
Exemplo n.º 7
0
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]
Exemplo n.º 8
0
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}>'
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
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)
Exemplo n.º 11
0
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)
Exemplo n.º 12
0
class Genre(db.Model):
    __tablename__ = 'Genre'

    id = db.Column(db.Integer, primary_key=True)
    genre = db.Column(db.String(120), nullable=False, unique=True)