class Venue(db.Model): __tablename__ = 'venue' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(128), nullable=False) description = db.Column(db.Text) homepage = db.Column(db.String(64)) locations = db.relationship("Location", backref="venue") vouchers = db.relationship("Voucher", backref="venue") def __init__(self, data=None): if data is None: return self.name = data['name'] self.description = data['description'] self.homepage = data['homepage'] self.vouchers = data['vouchers'] self.locations = data['locations'] def add_voucher(self, voucher): self.vouchers.append(voucher) def add_location(self, location): self.locations.append(location) def __repr__(self): return '<VENUE "{}">'.format(self.name)
class VoucherTag(db.Model): __tablename__ = 'voucher_tag' id_voucher = db.Column(db.Integer, db.ForeignKey('voucher.id'), primary_key=True, nullable=False) tag = db.Column(db.Enum(Tag), nullable=False, primary_key=True) def __init__(self, tag): self.tag = tag def __repr__(self): return '<VOUCHERTAG "{}: {}">'.format(self.id_voucher, self.tag)
class VoucherType(db.Model): __tablename__ = 'voucher_type' id_voucher = db.Column(db.Integer, db.ForeignKey('voucher.id'), primary_key=True, nullable=False) type = db.Column(db.Enum(Type), primary_key=True, nullable=False) def __init__(self, voucher_type): self.type = voucher_type def __repr__(self): return '<VOUCHERTYPE "{}: {}">'.format(self.id_voucher, self.type)
class Voucher(db.Model): __tablename__ = 'voucher' id = db.Column(db.Integer, primary_key=True) id_venue = db.Column(db.Integer, db.ForeignKey('venue.id'), nullable=False) description = db.Column(db.Text, nullable=False) limitations = db.Column(db.Text) voucher_types = db.relationship("VoucherType") voucher_tags = db.relationship("VoucherTag") def __init__(self, data): self.venue = data['venue'] self.description = data['description'] self.limitations = data['limitations'] self.voucher_types = data['voucher_types'] self.voucher_tags = data['voucher_tags'] def __repr__(self): return '<VOUCHER "{}">'.format(self.id)
class Location(db.Model): __tablename__ = 'location' id = db.Column(db.Integer, primary_key=True) id_venue = db.Column(db.Integer, db.ForeignKey('venue.id'), nullable=False) address = db.Column(db.String(256), nullable=False) email = db.Column(db.String(64)) phone = db.Column(db.String(32)) opening_hours = db.Column(db.Text) latitude = db.Column(db.Float, nullable=False) longitude = db.Column(db.Float, nullable=False) def __init__(self, data): self.address = data['address'] self.email = data['email'] self.phone = data['phone'] self.opening_hours = data['opening_hours'] self.latitude = data['latitude'] self.longitude = data['longitude'] self.venue = data['venue'] def __repr__(self): return '<LOCATION "{}">'.format(self.address)
class Interval(db.Model): __tablename__ = 'interval' id = db.Column(db.Integer, primary_key=True) id_venue = db.Column(db.Integer, db.ForeignKey('venue.id'), nullable=False) start_hour = db.Column(db.Time, nullable=False) end_hour = db.Column(db.Time, nullable=False) start_day = db.Column(db.Integer, nullable=False) end_day = db.Column(db.Integer, nullable=False) start_month = db.Column(db.Integer, nullable=False) end_month = db.Column(db.Integer, nullable=False) def __init__(self, data): self.venue = data['venue'] self.start_hour = data['start_hour'] self.end_hour = data['end_hour'] self.start_day = data['start_day'] self.end_day = data['end_day'] self.start_month = data['start_month'] self.end_month = data['end_month'] def __repr__(self): return '<INTERVAL "{}">'.format(self.id)