Example #1
0
class Carts(db.Model):
    """ Cart Model """

    # table name
    __tablename__ = 'carts'

    id = db.Column(db.BIGINT, primary_key=True)
    beat_id = db.Column(db.Integer)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    price = db.Column(db.Float())
    license = db.Column(db.String(50))
    created_at = db.Column(db.DateTime)
    modified_at = db.Column(db.DateTime)

    # class constructor
    def __init__(self, data):
        """ Class constructor """

        self.beat_id = data.get("beat_id")
        self.user_id = data.get("user_id")
        self.price = data.get("price")
        self.license = data.get("license")
        self.created_at = datetime.datetime.now()
        self.modified_at = datetime.datetime.now()

    def save(self):
        """ save an article """

        db.session.add(self)
        db.session.commit()

    def delete(self):
        """ delete an article """

        db.session.delete(self)
        db.session.commit()
class PaymentHistory(db.Model):
    """ Payment history Model """

    # table name
    __tablename__ = 'payment_history'

    id = db.Column(db.Integer, primary_key=True)
    artist_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    buyer_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=True)
    media_id = db.Column(db.Integer, db.ForeignKey('medias.id'), nullable=True)
    reference = db.Column(db.String(100))
    name = db.Column(db.String(100), nullable=False)
    lastname = db.Column(db.String(100), nullable=True)
    email = db.Column(db.String(100), nullable=False)
    address = db.Column(db.String(200), nullable=False)
    city = db.Column(db.String(100), nullable=False)
    postal_code = db.Column(db.Integer, nullable=False)
    phone = db.Column(db.String(200), nullable=True, default="")
    ip_address = db.Column(db.String(100))
    artist_amount = db.Column(db.Float(), nullable=True)
    type = db.Column(db.String(150))
    paid = db.Column(db.BOOLEAN, default=False)
    service_fee = db.Column(db.BOOLEAN, default=False)
    refund = db.Column(db.BOOLEAN, default=False)
    tva = db.Column(db.Float(), nullable=True)
    isl_amount = db.Column(db.Float(), nullable=True)
    total_amount = db.Column(db.Float(), nullable=True)
    licenses_name = db.Column(db.String(50), nullable=True)
    created_at = db.Column(db.DateTime)
    modified_at = db.Column(db.DateTime)
    media = db.relationship("Media",
                            backref=db.backref("media_payment_story",
                                               uselist=False))

    # class constructor
    def __init__(self, data):
        """ Class constructor """

        self.tva = data.get('tva')
        self.type = data.get('type')
        self.name = data.get('name')
        self.paid = data.get('paid')
        self.service_fee = data.get('service_fee')
        self.refund = data.get('refund')
        self.lastname = data.get('lastname')
        self.email = data.get('email')
        self.address = data.get('address')
        self.city = data.get('city')
        self.postal_code = data.get('postal_code')
        self.phone = data.get('phone')
        self.ip_address = data.get('ip_address')
        self.buyer_id = data.get('buyer_id')
        self.artist_id = data.get('artist_id')
        self.reference = data.get('reference')
        self.isl_amount = data.get('isl_amount')
        self.media_id = data.get('media_id')
        self.total_amount = data.get('total_amount')
        self.licenses_name = data.get('licenses_name')
        self.artist_amount = data.get('artist_amount')
        self.created_at = datetime.datetime.utcnow()
        self.modified_at = datetime.datetime.utcnow()

    def save(self):
        """save a new payment """

        db.session.add(self)
        db.session.commit()

    def update(self, data):
        """ update a payment """

        self.tva = data.get('tva')
        self.type = data.get('type')
        self.name = data.get('name')
        self.paid = data.get('paid')
        self.service_fee = data.get('service_fee')
        self.refund = data.get('refund')
        self.lastname = data.get('lastname')
        self.email = data.get('email')
        self.address = data.get('address')
        self.city = data.get('city')
        self.postal_code = data.get('postal_code')
        self.phone = data.get('phone')
        self.media_id = data.get('media_id')
        self.ip_address = data.get('ip_address')
        self.buyer_id = data.get('buyer_id')
        self.artist_id = data.get('artist_id')
        self.reference = data.get('reference')
        self.isl_amount = data.get('isl_amount')
        self.total_amount = data.get('total_amount')
        self.licenses_name = data.get('licenses_name')
        self.artist_amount = data.get('artist_amount')
        self.modified_at = datetime.datetime.utcnow()
        db.session.commit()

    def delete(self):
        """ delete a payment """

        db.session.delete(self)
        db.session.commit()

    @staticmethod
    def get_payment_history_by_id(payment_history_id):
        """ get a payment by id """

        return PaymentHistory.query.filter_by(id=payment_history_id).first()

    @staticmethod
    def get_payment_history_by_reference(reference):
        """ get a payment by reference """

        return PaymentHistory.query.filter_by(reference=reference).first()
Example #3
0
class Media(db.Model):
    """ Media Model """

    # table name
    __tablename__ = 'medias'

    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(255), nullable=False)
    description = db.Column(db.String(255), nullable=True)
    photo = db.Column(db.String(255), nullable=True)
    basic_price = db.Column(db.Float(), nullable=True)
    silver_price = db.Column(db.Float(), nullable=True)
    gold_price = db.Column(db.Float(), nullable=True)
    platinum_price = db.Column(db.Float(), nullable=True)
    genre = db.Column(db.String(155), nullable=False)
    artist = db.Column(db.String(125), nullable=False)
    artist_tag = db.Column(db.String(255), nullable=True)
    stems = db.Column(db.String(255), nullable=True)
    wave = db.Column(db.String(255), nullable=True)
    mp3 = db.Column(db.String(255), nullable=True)
    share = db.Column(db.Integer, default=0)
    time = db.Column(db.String(10))
    listened = db.Column(db.Integer, default=0)
    bpm = db.Column(db.Float, default=0.0)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    created_at = db.Column(db.DateTime)
    modified_at = db.Column(db.DateTime)

    # Relationship
    prestige = db.relationship(Prestige,
                               lazy='dynamic',
                               cascade="all, delete, save-update")
    admirations = db.relationship(Admiration,
                                  cascade="all, delete, save-update",
                                  lazy='dynamic')

    # class constructor
    def __init__(self, data):
        """ Class constructor """

        self.user_id = data.get('user_id')
        self.title = data.get('title')
        self.listened = 0
        self.photo = data.get('photo')
        self.bpm = data.get('bpm', 0)
        self.time = data.get('time')
        self.mp3 = data.get('mp3')
        self.stems = data.get('stems')
        self.share = data.get('share')
        self.wave = data.get('wave')
        self.artist_tag = data.get('artist_tag')
        self.description = data.get('description') if data.get(
            'description') else data.get('Description')
        self.artist = data.get('artist', data.get('Artist'))
        self.basic_price = data.get('basic_price', None)
        self.silver_price = data.get('silver_price', None)
        self.gold_price = data.get('gold_price', None)
        self.platinum_price = data.get('platinum_price', None)
        self.genre = data.get('genre') if data.get('genre') else data.get(
            'Genre')
        self.created_at = datetime.datetime.utcnow()
        self.modified_at = datetime.datetime.utcnow()

    def save(self):
        """save a new media """

        db.session.add(self)
        db.session.commit()
        add_new_doc(self, MediaSchema(), index="beats", doc_type="songs")

    def update(self, data):
        """ update one media """

        self.title = data.get('title')
        self.bpm = data.get('bpm')
        self.description = data.get('description')
        self.artist = data.get('artist')
        self.photo = data.get('photo')
        self.genre = data.get('genre')
        self.basic_price = data.get('basic_price')
        self.silver_price = data.get('silver_price')
        self.gold_price = data.get('gold_price')
        self.platinum_price = data.get('platinum_price')
        self.time = data.get('time')
        self.mp3 = data.get('mp3')
        self.stems = data.get('stems')
        self.share = data.get('share')
        self.wave = data.get('wave')
        self.artist_tag = data.get('artist_tag')
        self.listened = data.get('listened')
        self.modified_at = datetime.datetime.utcnow()
        db.session.commit()
        update_doc(self, MediaSchema(), index="beats", doc_type="songs")

    def delete(self):
        """ delete one media """

        db.session.delete(self)
        db.session.commit()

    @staticmethod
    def get_song_by_id(song_id):
        """ get one song by id """

        return Media.query.filter_by(id=song_id).first()

    @staticmethod
    def isl_playlist_beats():
        """ Return 10 of beats isl playlist """

        try:
            _min = db.session.query(db.func.max(Media.listened)).scalar() / 2
            return Media.query \
                .filter(Media.listened < round(_min + (_min / 2)), Media.listened > round(_min - (_min / 2))) \
                .limit(20) \
                .all()
        except TypeError:
            return None
Example #4
0
class Payment(db.Model):
    """ Payment Model """

    # table name
    __tablename__ = 'payment'

    id = db.Column(db.Integer, primary_key=True)
    artist_id = db.Column(db.Integer,
                          db.ForeignKey('users.id'),
                          nullable=False)
    reference = db.Column(db.String(100), nullable=False)
    amount = db.Column(db.Float(), nullable=False)
    type = db.Column(db.String(150), nullable=False)
    licenses_name = db.Column(db.String(50), nullable=True)
    created_at = db.Column(db.DateTime)
    modified_at = db.Column(db.DateTime)

    # class constructor
    def __init__(self, data):
        """ Class constructor """

        self.artist_id = data.get('artist_id')
        self.amount = data.get('amount')
        self.type = data.get('type')
        self.licenses_name = data.get('licenses_name')
        self.reference = data.get('reference')
        self.created_at = datetime.datetime.utcnow()
        self.modified_at = datetime.datetime.utcnow()

    def save(self):
        """save a new payment """

        db.session.add(self)
        db.session.commit()

    def update(self, data):
        """ update a payment """

        self.artist_id = data.get('artist_id')
        self.amount = data.get('amount')
        self.type = data.get('type')
        self.licenses_name = data.get('licenses_name')
        self.reference = data.get('reference')
        self.modified_at = datetime.datetime.utcnow()
        db.session.commit()

    def delete(self):
        """ delete a payment """

        db.session.delete(self)
        db.session.commit()

    @staticmethod
    def get_payment_by_id(payment_id):
        """ get a payment by id """

        return Payment.query.filter_by(id=payment_id).first()

    @staticmethod
    def get_payment_by_reference(reference):
        """ get a payment by reference """

        return Payment.query.filter_by(reference=reference).first()
class ContractBeatMaking(db.Model):
    """ Contract BeatMaking Model """

    # table name
    __tablename__ = 'contract_beat_making'

    id = db.Column(db.Integer, primary_key=True)
    contract_name = db.Column(db.String(255), nullable=False)
    price = db.Column(db.Float(), default=0)
    mp3 = db.Column(db.BOOLEAN, default=False)
    wave = db.Column(db.BOOLEAN, default=False)
    stems = db.Column(db.BOOLEAN, default=False)
    enabled = db.Column(db.BOOLEAN, default=True)
    number_of_distribution_copies = db.Column(db.Integer, default=0)
    number_audio_stream = db.Column(db.Integer, default=0)
    number_music_video = db.Column(db.Integer, default=0)
    number_radio_station = db.Column(db.Integer, default=0)
    unlimited = db.Column(db.BOOLEAN, default=False)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    created_at = db.Column(db.DateTime)
    modified_at = db.Column(db.DateTime)

    # class constructor
    def __init__(self, data):
        """ Class constructor """

        self.user_id = data.get('user_id')
        self.contract_name = data.get('contract_name')
        self.price = data.get('price')
        self.mp3 = data.get('mp3', False)
        self.wave = data.get('wave', False)
        self.stems = data.get('stems', False)
        self.enabled = data.get('enabled')
        self.number_of_distribution_copies = data.get(
            'number_of_distribution_copies')
        self.number_audio_stream = data.get('number_audio_stream')
        self.number_music_video = data.get('number_music_video')
        self.number_radio_station = data.get('number_radio_station')
        self.unlimited = data.get('unlimited')
        self.modified_at = datetime.datetime.utcnow()
        self.created_at = datetime.datetime.utcnow()

    def save(self):
        """save a new contract """

        db.session.add(self)
        db.session.commit()

    def update(self, data):
        """ update one media """

        self.price = data.get('price')
        self.enabled = data.get('enabled')
        self.number_of_distribution_copies = data.get(
            'number_of_distribution_copies')
        self.number_audio_stream = data.get('number_audio_stream')
        self.number_music_video = data.get('number_music_video')
        self.number_radio_station = data.get('number_radio_station')
        self.unlimited = data.get('unlimited')
        self.modified_at = datetime.datetime.utcnow()
        db.session.commit()

    def delete(self):
        """ delete one media """

        db.session.delete(self)
        db.session.commit()

    @staticmethod
    def get_contract_name_by_user_id(contract_name=None, user_id=None):
        """ get one contract name by user id """

        if contract_name and not user_id:
            return ContractBeatMaking.query.filter_by(
                contract_name=contract_name).all()

        if not contract_name and user_id:
            return ContractBeatMaking.query.filter_by(user_id=user_id).all()

        return ContractBeatMaking.query.filter_by(contract_name=contract_name,
                                                  user_id=user_id).first()
class Options(db.Model):
    """ Options Model """

    __tablename__ = 'options'

    id = db.Column(db.BIGINT, primary_key=True)
    special_dates = db.Column(JSON, default={})
    name = db.Column(db.String(200), nullable=False)
    description = db.Column(db.Text(), nullable=True)
    artist_tagged = db.Column(db.String(200), nullable=False)
    price = db.Column(db.Float(), nullable=False, default=1.00)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    services_id_list = db.Column(db.ARRAY(db.Integer), default=[])
    materials_id = db.Column(db.Integer, db.ForeignKey('materials.id'))
    created_at = db.Column(db.DateTime)
    modified_at = db.Column(db.DateTime)
    material = db.relationship(
        "Materials",
        cascade="all, delete, save-update",
        backref=db.backref("materials_of_options", uselist=False)
    )

    # class constructor
    def __init__(self, data):
        """ Class constructor """

        self.name = data.get('name')
        self.price = data.get('price')
        self.user_id = data.get('user_id')
        self.description = data.get('description')
        self.materials_id = data.get('materials_id')
        self.artist_tagged = data.get('artist_tagged')
        self.special_dates = data.get('special_dates')
        self.services_id_list = data.get('services_id_list')
        self.created_at = datetime.datetime.utcnow()
        self.modified_at = datetime.datetime.utcnow()

    def save(self):
        """ save a Options """

        db.session.add(self)
        db.session.commit()
        add_new_doc(self, OptionsSchema(), index="options", doc_type="option")

    def update(self, data):
        """ update a Options """

        self.name = data.get('name')
        self.price = data.get('price')
        self.user_id = data.get('user_id')
        self.description = data.get('description')
        self.materials_id = data.get('materials_id')
        self.artist_tagged = data.get('artist_tagged')
        self.special_dates = data.get('special_dates')
        self.services_id_list = data.get('services_id_list')
        self.modified_at = datetime.datetime.utcnow()
        db.session.commit()
        update_doc(self, OptionsSchema(), index="options", doc_type="option")

    def delete(self):
        """ delete a user Options """

        db.session.delete(self)
        db.session.commit()

    @staticmethod
    def get_by_options_id(options_id=None):
        """ get one artist service """

        return Options.query.filter_by(service_id=options_id).first()
class Services(db.Model):
    """ Services Model """

    # table name
    __tablename__ = 'services'

    id = db.Column(db.BIGINT, primary_key=True)
    special_dates = db.Column(JSON, default={})
    hidden = db.Column(db.Boolean, default=False)
    description = db.Column(db.Text(), nullable=True)
    title = db.Column(db.String(200), nullable=False)
    country = db.Column(db.String(200), nullable=False)
    events = db.Column(db.ARRAY(db.String), default=[])
    galleries = db.Column(db.ARRAY(db.String), default=[])
    thematics = db.Column(db.ARRAY(db.String), default=[])
    others_city = db.Column(db.ARRAY(db.String), default=[])
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    reference_city = db.Column(db.String(200), nullable=False)
    price = db.Column(db.Float(), nullable=False, default=1.00)
    travel_expenses = db.Column(JSON, nullable=False, default={})
    number_of_artists = db.Column(db.Integer(), nullable=False, default=1)
    unit_duration_of_the_service = db.Column(db.String(10), nullable=False)
    preparation_time = db.Column(db.Float(), nullable=False, default=1.00)
    unit_of_the_preparation_time = db.Column(db.String(10), nullable=False)
    refund_policy = db.Column(db.String(45),
                              nullable=False,
                              default='flexible')
    duration_of_the_service = db.Column(db.Float(),
                                        nullable=False,
                                        default=1.00)
    materials_id = db.Column(db.Integer,
                             db.ForeignKey('materials.id'),
                             nullable=False)
    created_at = db.Column(db.DateTime)
    modified_at = db.Column(db.DateTime)
    material = db.relationship("Materials",
                               cascade="all, delete, save-update",
                               backref=db.backref("materials_of_services",
                                                  uselist=False))

    # class constructor
    def __init__(self, data):
        """ Class constructor """

        self.title = data.get('title')
        self.price = data.get('price')
        self.country = data.get('country')
        self.events = data.get('events')
        self.user_id = data.get('user_id')
        self.hidden = data.get('hidden', False)
        self.galleries = data.get('galleries')
        self.thematics = data.get('thematics')
        self.description = data.get('description')
        self.others_city = data.get('others_city')
        self.special_dates = data.get('special_dates')
        self.materials_id = data.get('materials_id')
        self.reference_city = data.get('reference_city')
        self.travel_expenses = data.get('travel_expenses')
        self.preparation_time = data.get('preparation_time')
        self.number_of_artists = data.get('number_of_artists')
        self.refund_policy = data.get('refund_policy', 'flexible')
        self.duration_of_the_service = data.get('duration_of_the_service')
        self.unit_duration_of_the_service = data.get(
            'unit_duration_of_the_service')
        self.unit_of_the_preparation_time = data.get(
            'unit_of_the_preparation_time')
        self.created_at = datetime.datetime.utcnow()
        self.modified_at = datetime.datetime.utcnow()

    def save(self):
        """ save a Services """

        db.session.add(self)
        db.session.commit()
        add_new_doc(self,
                    ServiceSchema(),
                    index="services",
                    doc_type="prestations")

    def update(self, data):
        """ update a Services """

        self.title = data.get('title')
        self.hidden = data.get('hidden')
        self.country = data.get('country')
        self.description = data.get('description')
        self.events = data.get('events')
        self.galleries = data.get('galleries')
        self.thematics = data.get('thematics')
        self.others_city = data.get('others_city')
        self.user_id = data.get('user_id')
        self.reference_city = data.get('reference_city')
        self.special_dates = data.get('special_dates')
        self.price = data.get('price')
        self.refund_policy = data.get('refund_policy')
        self.materials_id = data.get('materials_id')
        self.travel_expenses = data.get('travel_expenses')
        self.number_of_artists = data.get('number_of_artists')
        self.duration_of_the_service = data.get('duration_of_the_service')
        self.unit_duration_of_the_service = data.get(
            'unit_duration_of_the_service')
        self.preparation_time = data.get('preparation_time')
        self.unit_of_the_preparation_time = data.get(
            'unit_of_the_preparation_time')
        self.modified_at = datetime.datetime.utcnow()
        db.session.commit()
        update_doc(self,
                   ServiceSchema(),
                   index="services",
                   doc_type="prestations")

    def delete(self):
        """ delete a user Services """

        db.session.delete(self)
        db.session.commit()

    @staticmethod
    def get_by_service_id(service_id=None):
        """ get one artist service """

        return Services.query.filter_by(id=service_id).first()