class ContiModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'test_db'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    con_name = db.Column(db.Unicode(255))
    lname = db.Column(db.Unicode(80))
    sa.orm.configure_mappers()

    def __init__(self, con_name, lname):
        self.con_name = con_name
        self.lname = lname

    def json(self):
        return {'id': self.id, 'name': self.con_name, 'Login_Name': self.lname}

    @classmethod
    def find_by_name(cls, con_name):
        return cls.query.filter_by(con_name=con_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 2
0
class UserLevelModel(db.Model,VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'userlevel'

    userlevel_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    token         = db.Column(db.Unicode(80))
    level_name  = db.Column(db.Unicode(255))
    user_type_id  = db.Column(db.Integer)
    created_by    = db.Column(db.Integer)
    created_on    = db.Column(db.DateTime)
    modified_by   = db.Column(db.Integer)
    modified_on   = db.Column(db.DateTime)
    deleted_by    = db.Column(db.Integer)
    deleted_on    = db.Column(db.DateTime)

    sa.orm.configure_mappers()

    def __init__(self,level_name,user_type_id):
        self.level_name = level_name
        self.user_type_id = user_type_id
   

    def json(self):
        return{
            'id':self.userlevel_id,
            'name':self.level_name,
            'token':self.token
        }

    @classmethod
    def find_by_id(cls, userlevel_id):
        return cls.query.filter_by(userlevel_id=userlevel_id).first()
    
    @classmethod 
    def find_by_name(cls,level_name):
        return cls.query.filter_by(level_name=level_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()


    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()


    def save_to_db(self) :
        db.session.add(self)
        db.session.commit()


    @classmethod
    def validateData(cls, data, _request):
        schema = {'level_name': {'required': True, 'empty': False, 'type': 'string'},
        'user_type_id': {'required': True, 'empty': False, 'type': 'integer'}}
        v = Validator(schema)
        v.allow_unknown = True
        return True if(v.validate(data)) else v.errors
Ejemplo n.º 3
0
class ServiceModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'service'

    service_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    service_name = db.Column(db.Unicode(255))
    logo = db.Column(db.Unicode(255))
    brand_id = db.Column(db.Integer, db.ForeignKey('brands.brand_id'))
    category_id = db.Column(db.Integer,
                            db.ForeignKey('brandcategory.category_id'))
    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)

    brands = db.relationship('BrandsModel')
    brandcategory = db.relationship('BrandCategoryModel')

    sa.orm.configure_mappers()

    def __init__(self, service_name, logo, brand_id, category_id):
        self.service_name = service_name
        self.logo = logo
        self.brand_id = brand_id
        self.category_id = category_id

    def json(self):
        return {
            'id': self.service_id,
            'name': self.service_name,
            'logo': self.logo
        }

    @classmethod
    def find_by_name(cls, service_name):
        return cls.query.filter_by(service_name=service_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 4
0
class Product(db.Model):
    __tablename__ = 'product'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.Unicode(256), default="")
    quantity = db.Column(db.Integer, default=0)
    cost = db.Column(db.Float, default=0)
    price = db.Column(db.Float, default=0)
class TargetAudienceProfileModel(db.Model,VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'target_audience_profile'

    target_audience_profile_id   = db.Column(db.Integer, primary_key=True, autoincrement=True)
    audience_profile_name = db.Column(db.Unicode(255))
    business = db.Column(db.Unicode(255))
    age_group_id = db.Column(db.Integer, db.ForeignKey('age_group.age_group_id'))
    gender_id  = db.Column(db.Integer, db.ForeignKey('gender.gender_id'))
    target_languages = db.Column(db.Unicode(255))
    target_nationality = db.Column(db.Unicode(255))
    target_education = db.Column(db.Unicode(255))
    target_occupation = db.Column(db.Unicode(255))
    target_interest = db.Column(db.Unicode(255))
    created_by    = db.Column(db.Integer)
    created_on    = db.Column(db.DateTime)
    modified_by   = db.Column(db.Integer)
    modified_on   = db.Column(db.DateTime)
    deleted_by    = db.Column(db.Integer)
    deleted_on    = db.Column(db.DateTime)

    agegroup        = db.relationship('AgeGroupModel')
    gender          = db.relationship('GenderModel')
    sa.orm.configure_mappers()

    def __init__(self,audience_profile_name,business,age_group_id,gender_id,target_languages,target_nationality,target_education,target_occupation,target_interest):
        self.audience_profile_name = audience_profile_name
        self.business = business
        self.age_group_id = age_group_id
        self.gender_id = gender_id
        self.target_languages = target_languages
        self.target_nationality = target_nationality
        self.target_education = target_education
        self.target_occupation = target_occupation
        self.target_interest = target_interest
   

    def json(self):
        return{
            'id':self.target_audience_profile_id,
            'name':self.audience_profile_name,
        }
    @classmethod 
    def find_by_name(cls,audience_profile_name):
        return cls.query.filter_by(audience_profile_name=audience_profile_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()


    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()


    def save_to_db(self) :
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 6
0
class UserPermissionModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'userpermissions'

    permission_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    section_name = db.Column(db.Unicode(255))
    feature_name = db.Column(db.Unicode(255))
    user_type_id = db.Column(db.Integer)
    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)

    sa.orm.configure_mappers()

    def __init__(self, section_name, feature_name, user_type_id):
        self.section_name = section_name
        self.feature_name = feature_name
        self.user_type_id = user_type_id

    def json(self):
        return {
            'id': self.permission_id,
            'name': self.section_name,
            'feature_name': self.feature_name
        }

    @classmethod
    def find_by_name(cls, section_name):
        return cls.query.filter_by(section_name=section_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 7
0
class BrandCategoryModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'brandcategory'

    category_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    category_name = db.Column(db.Unicode(255))
    logo = db.Column(db.Unicode(255))
    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)

    sa.orm.configure_mappers()

    def __init__(self, category_name, logo):
        self.category_name = category_name
        self.logo = logo

    def json(self):
        return {
            'id': self.category_id,
            'name': self.category_name,
        }

    @classmethod
    def find_by_name(cls, category_name):
        return cls.query.filter_by(category_name=category_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 8
0
class Currency(db.Model):
    __tablename__ = 'currency'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.Unicode(length=50), unique=True, nullable=False)

    @classmethod
    async def get_or_create(cls, name: str) -> 'Currency':
        get_query = cls.query.where(cls.name == name)
        result = await get_query.gino.first()
        if not result:
            try:
                result = await cls.create(name=name)
            except asyncpg.UniqueViolationError:
                result = await get_query.gino.first()
        return result
Ejemplo n.º 9
0
class BrandsModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'brands'

    brand_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    brand_name = db.Column(db.Unicode(255))
    user_id = db.Column(db.Integer)
    industry_id = db.Column(db.Integer, db.ForeignKey('industry.industry_id'))
    brand_category_id = db.Column(db.Integer)
    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)

    industry = db.relationship('IndustryModel')

    sa.orm.configure_mappers()

    def __init__(self, brand_name, user_id, industry_id, brand_category_id):
        self.brand_name = brand_name
        self.user_id = user_id
        self.industry_id = industry_id
        self.brand_category_id = brand_category_id

    def json(self):
        return {'id': self.brand_id, 'name': self.brand_name}

    @classmethod
    def find_by_name(cls, brand_name):
        return cls.query.filter_by(brand_name=brand_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 10
0
class AgeGroupModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'age_group'

    age_group_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    age_group = db.Column(db.Unicode(255))
    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)

    sa.orm.configure_mappers()

    def __init__(self, age_group):
        self.age_group = age_group

    def json(self):
        return {
            'id': self.age_group_id,
            'name': self.age_group,
        }

    @classmethod
    def find_by_name(cls, age_group):
        return cls.query.filter_by(age_group=age_group).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 11
0
class UsersModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'users'

    user_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    email = db.Column(db.Unicode(255))
    password = db.Column(db.Unicode(55))
    user_type_id = db.Column(db.Integer)
    company_name = db.Column(db.Unicode(255))
    first_name = db.Column(db.Unicode(55))
    last_name = db.Column(db.Unicode(55))
    phone = db.Column(db.Unicode(10))
    title = db.Column(db.Unicode(255))
    owner_manager = db.Column(db.Unicode(255))
    yearly_budget = db.Column(db.Integer)
    logo = db.Column(db.Unicode(255))
    city = db.Column(db.Unicode(255))
    country_id = db.Column(db.Integer)
    address = db.Column(db.Unicode(255))
    timezone = db.Column(db.Unicode(255))
    level = db.Column(db.Unicode(255))
    permission = db.Column(db.Unicode(255))
    assigned_brands = db.Column(db.Unicode(255))
    assigned_products = db.Column(db.Unicode(255))
    assigned_services = db.Column(db.Unicode(255))
    parent_user_id = db.Column(db.Integer)
    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)

    sa.orm.configure_mappers()

    def __init__(self, email, password, user_type_id, company_name, first_name,
                 last_name, phone, title, owner_manager, yearly_budget, logo,
                 city, country_id, address, timezone, level, permission,
                 assigned_brands, assigned_products, assigned_services,
                 parent_user_id):

        self.email = email
        self.password = password
        self.user_type_id = user_type_id
        self.company_name = company_name
        self.first_name = first_name
        self.last_name = last_name
        self.phone = phone
        self.title = title
        self.owner_manager = owner_manager
        self.yearly_budget = yearly_budget
        self.logo = logo
        self.city = city
        self.country_id = country_id
        self.address = address
        self.timezone = timezone
        self.level = level
        self.permission = permission
        self.assigned_brands = assigned_brands
        self.assigned_products = assigned_products
        self.assigned_services = assigned_services
        self.parent_user_id = parent_user_id

    def json(self):
        return {'id': self.user_id, 'name': self.email}

    @classmethod
    def find_by_Email(cls, email):
        return cls.query.filter_by(email=email).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 12
0
class UsersModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'users'

    UserID = db.Column(db.Integer, primary_key=True, autoincrement=True)
    UserTypeID = db.Column(db.Integer)
    CompanyName = db.Column(db.Unicode(255))
    Email = db.Column(db.Unicode(255))
    Password = db.Column(db.Unicode(55))
    FirstName = db.Column(db.Unicode(55))
    LastName = db.Column(db.Unicode(55))
    Phone = db.Column(db.Unicode(10))
    Title = db.Column(db.Unicode(255))
    OwnerManager = db.Column(db.Unicode(255))
    YearlyBudget = db.Column(db.Integer)
    Logo = db.Column(db.Unicode(255))
    City = db.Column(db.Unicode(255))
    CountryID = db.Column(db.Integer)
    Address = db.Column(db.Unicode(255))
    Timezone = db.Column(db.Unicode(255))
    Level = db.Column(db.Unicode(255))
    Permission = db.Column(db.Unicode(255))
    AssignedBrands = db.Column(db.Unicode(255))
    AssignedProducts = db.Column(db.Unicode(255))
    AssignedServices = db.Column(db.Unicode(255))
    ParentUserId = db.Column(db.Integer)
    CreatedBy = db.Column(db.Integer, default=u'NULL')
    CreatedOn = db.Column(db.DateTime, server_default=db.func.now())
    ModifiedBy = db.Column(db.Integer, default=u'NULL')
    ModifiedOn = db.Column(db.DateTime,
                           server_default=db.func.now(),
                           server_onupdate=db.func.now())
    DeletedBy = db.Column(db.Integer, default=u'NULL')
    DeletedOn = db.Column(db.DateTime, server_default=db.func.now())

    sa.orm.configure_mappers()

    def __init__(self, UserTypeID, CompanyName, Email, Password, FirstName,
                 LastName, Phone, Title, OwnerManager, YearlyBudget, Logo,
                 City, CountryID, Address, Timezone, Level, Permission,
                 AssignedBrands, AssignedProducts, AssignedServices,
                 ParentUserId, CreatedBy, CreatedOn, ModifiedBy, ModifiedOn,
                 DeletedBy, DeletedOn):

        self.UserTypeID = UserTypeID
        self.CompanyName = CompanyName
        self.Email = Email
        self.Password = Password
        self.FirstName = FirstName
        self.LastName = LastName
        self.Phone = Phone
        self.Title = Title
        self.OwnerManager = OwnerManager
        self.YearlyBudget = YearlyBudget
        self.Logo = Logo
        self.City = City
        self.CountryID = CountryID
        self.Address = Address
        self.Timezone = Timezone
        self.Level = Level
        self.Permission = Permission
        self.AssignedBrands = AssignedBrands
        self.AssignedProducts = AssignedProducts
        self.AssignedServices = AssignedServices
        self.ParentUserId = ParentUserId
        self.CreatedBy = CreatedBy
        self.CreatedOn = datetime.utcnow()
        self.ModifiedBy = ModifiedBy
        self.ModifiedOn = datetime.utcnow()
        self.DeletedBy = DeletedBy
        self.DeletedOn = datetime.utcnow()

    def json(self):
        return {'id': self.IndustryID, 'name': self.IndustryName}

    @classmethod
    def find_by_Email(cls, Email):
        return cls.query.filter_by(Email=Email).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 13
0
class ServiceModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'service'

    service_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    token = db.Column(db.Unicode(80))
    service_name = db.Column(db.Unicode(255))
    logo = db.Column(db.Unicode(255))
    brand_id = db.Column(db.Integer, db.ForeignKey('brands.brand_id'))
    category_id = db.Column(db.Integer,
                            db.ForeignKey('brandcategory.category_id'))
    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)

    brands = db.relationship('BrandsModel')
    brandcategory = db.relationship('BrandCategoryModel')

    sa.orm.configure_mappers()

    def __init__(self, service_name, logo, brand_id, category_id):
        self.service_name = service_name
        self.logo = logo
        self.brand_id = brand_id
        self.category_id = category_id

    def json(self):
        return {
            'id': self.service_id,
            'name': self.service_name,
            'logo': self.logo,
            'token': self.token
        }

    @classmethod
    def find_by_id(cls, service_id):
        return cls.query.filter_by(service_id=service_id).first()

    @classmethod
    def find_by_name(cls, service_name):
        return cls.query.filter_by(service_name=service_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

    @classmethod
    def validateData(cls, data, _request):
        schema = {
            'service_name': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'logo': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'brand_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'category_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            }
        }
        v = Validator(schema)
        v.allow_unknown = True
        return True if (v.validate(data)) else v.errors
Ejemplo n.º 14
0
class AgeGroupModel(db.Model,VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'age_group'

    age_group_id   = db.Column(db.Integer, primary_key=True, autoincrement=True)
    token         = db.Column(db.Unicode(80))
    age_group = db.Column(db.Unicode(255))
    created_by    = db.Column(db.Integer)
    created_on    = db.Column(db.DateTime)
    modified_by   = db.Column(db.Integer)
    modified_on   = db.Column(db.DateTime)
    deleted_by    = db.Column(db.Integer)
    deleted_on    = db.Column(db.DateTime)


    sa.orm.configure_mappers()

    def __init__(self,age_group):
        self.age_group = age_group
   

    def json(self):
        return{
            'id':self.age_group_id,
            'name':self.age_group,
            'token':self.token
        }


    @classmethod
    def find_by_id(cls, age_group_id):
        return cls.query.filter_by(age_group_id=age_group_id).first()
    
    @classmethod 
    def find_by_name(cls,age_group):
        return cls.query.filter_by(age_group=age_group).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()


    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()


    def save_to_db(self) :
        db.session.add(self)
        db.session.commit()


    @classmethod
    def validateData(cls, data, _request):
        
        if _request.method == "POST":
            schema = {'age_group': {'required': True, 'empty': False, 'type': 'string'}}
        else :
            schema = {'age_group': {'required': True, 'empty': False, 'type': 'string'}}
        v = Validator(schema)
        v.allow_unknown = True
        return True if(v.validate(data)) else v.errors

        
        
Ejemplo n.º 15
0
class CampaignModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'campaign'

    campaign_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    campaign_name = db.Column(db.Unicode(255))
    description = db.Column(db.Unicode(255))
    brand_id = db.Column(db.Integer, db.ForeignKey('brands.brand_id'))
    product_ids = db.Column(db.Unicode(255))
    currency_id = db.Column(db.Integer)
    budget_amount = db.Column(db.Integer)
    objective_id = db.Column(db.Integer)
    kpi_id = db.Column(db.Integer)
    start_date = db.Column(db.DateTime)
    end_date = db.Column(db.DateTime)
    days = db.Column(db.Integer)
    target_locations = db.Column(db.Unicode(255))
    exclude_locations = db.Column(db.Unicode(255))

    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)
    barnd = db.relationship('BrandsModel')

    sa.orm.configure_mappers()

    def __init__(self, campaign_name, description, brand_id, product_ids,
                 currency_id, budget_amount, objective_id, kpi_id,
                 target_locations, exclude_locations):
        self.campaign_name = campaign_name
        self.description = description
        self.brand_id = brand_id
        self.product_ids = product_ids
        self.currency_id = currency_id
        self.budget_amount = budget_amount
        self.objective_id = objective_id
        self.kpi_id = kpi_id
        self.target_locations = target_locations
        self.exclude_locations = exclude_locations

    def json(self):
        return {
            'id': self.campaign_id,
            'name': self.campaign_name,
        }

    @classmethod
    def find_by_name(cls, campaign_name):
        return cls.query.filter_by(campaign_name=campaign_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 16
0
class TargetAudienceProfileModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'target_audience_profile'

    target_audience_profile_id = db.Column(db.Integer,
                                           primary_key=True,
                                           autoincrement=True)
    token = db.Column(db.Unicode(80))
    audience_profile_name = db.Column(db.Unicode(255))
    business = db.Column(db.Unicode(255))
    age_group_id = db.Column(db.Integer,
                             db.ForeignKey('age_group.age_group_id'))
    gender_id = db.Column(db.Integer, db.ForeignKey('gender.gender_id'))
    target_languages = db.Column(db.Unicode(255))
    target_nationality = db.Column(db.Unicode(255))
    target_education = db.Column(db.Unicode(255))
    target_occupation = db.Column(db.Unicode(255))
    target_interest = db.Column(db.Unicode(255))
    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)

    agegroup = db.relationship('AgeGroupModel')
    gender = db.relationship('GenderModel')
    sa.orm.configure_mappers()

    def __init__(self, audience_profile_name, business, age_group_id,
                 gender_id, target_languages, target_nationality,
                 target_education, target_occupation, target_interest):
        self.audience_profile_name = audience_profile_name
        self.business = business
        self.age_group_id = age_group_id
        self.gender_id = gender_id
        self.target_languages = target_languages
        self.target_nationality = target_nationality
        self.target_education = target_education
        self.target_occupation = target_occupation
        self.target_interest = target_interest

    def json(self):
        return {
            'id': self.target_audience_profile_id,
            'name': self.audience_profile_name,
            'token': self.token
        }

    @classmethod
    def find_by_id(cls, target_audience_profile_id):
        return cls.query.filter_by(
            target_audience_profile_id=target_audience_profile_id).first()

    @classmethod
    def find_by_name(cls, audience_profile_name):
        return cls.query.filter_by(
            audience_profile_name=audience_profile_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

    @classmethod
    def validateData(cls, data, _request):
        schema = {
            'audience_profile_name': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'business': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'age_group_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'gender_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'target_languages': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'target_nationality': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'target_education': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'target_occupation': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'target_interest': {
                'required': True,
                'empty': False,
                'type': 'string'
            }
        }
        v = Validator(schema)
        v.allow_unknown = True
        return True if (v.validate(data)) else v.errors
Ejemplo n.º 17
0
class UsersModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'users'

    user_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    token = db.Column(db.Unicode(80))
    email = db.Column(db.Unicode(255))
    password = db.Column(db.Unicode(55))
    user_type_id = db.Column(db.Integer)
    company_name = db.Column(db.Unicode(255))
    first_name = db.Column(db.Unicode(55))
    last_name = db.Column(db.Unicode(55))
    phone = db.Column(db.Unicode(10))
    title = db.Column(db.Unicode(255))
    owner_manager = db.Column(db.Unicode(255))
    yearly_budget = db.Column(db.Integer)
    logo = db.Column(db.Unicode(255))
    city = db.Column(db.Unicode(255))
    country_id = db.Column(db.Integer)
    address = db.Column(db.Unicode(255))
    timezone = db.Column(db.Unicode(255))
    level = db.Column(db.Unicode(255))
    permission = db.Column(db.Unicode(255))
    assigned_brands = db.Column(db.Unicode(255))
    assigned_products = db.Column(db.Unicode(255))
    assigned_services = db.Column(db.Unicode(255))
    parent_user_id = db.Column(db.Integer)
    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)

    sa.orm.configure_mappers()

    def __init__(self, email, password, user_type_id, company_name, first_name,
                 last_name, phone, title, owner_manager, yearly_budget, logo,
                 city, country_id, address, timezone, level, permission,
                 assigned_brands, assigned_products, assigned_services,
                 parent_user_id):

        self.email = email
        self.password = password
        self.user_type_id = user_type_id
        self.company_name = company_name
        self.first_name = first_name
        self.last_name = last_name
        self.phone = phone
        self.title = title
        self.owner_manager = owner_manager
        self.yearly_budget = yearly_budget
        self.logo = logo
        self.city = city
        self.country_id = country_id
        self.address = address
        self.timezone = timezone
        self.level = level
        self.permission = permission
        self.assigned_brands = assigned_brands
        self.assigned_products = assigned_products
        self.assigned_services = assigned_services
        self.parent_user_id = parent_user_id

    @classmethod
    def validateData(cls, data, _request):
        schema = {
            'email': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'password': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'user_type_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'company_name': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'first_name': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'last_name': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'phone': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'title': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'owner_manager': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'yearly_budget': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'logo': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'city': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'country_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'address': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'timezone': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'level': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'permission': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'assigned_brands': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'assigned_products': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'assigned_services': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'parent_user_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
        }
        v = Validator(schema)
        v.allow_unknown = True
        return True if (v.validate(data)) else v.errors

    def json(self):
        return {'id': self.user_id, 'name': self.email, 'token': self.token}

    @classmethod
    def find_by_id(cls, user_id):
        return cls.query.filter_by(user_id=user_id).first()

    @classmethod
    def find_by_name(cls, email):
        return cls.query.filter_by(email=email).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()
Ejemplo n.º 18
0
class CampaignModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'campaign'

    campaign_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    token = db.Column(db.Unicode(80))
    campaign_name = db.Column(db.Unicode(255))
    description = db.Column(db.Unicode(255))
    brand_id = db.Column(db.Integer, db.ForeignKey('brands.brand_id'))
    product_ids = db.Column(db.Unicode(255))
    currency_id = db.Column(db.Integer)
    budget_amount = db.Column(db.Integer)
    objective_id = db.Column(db.Integer)
    kpi_id = db.Column(db.Integer)
    start_date = db.Column(db.DateTime)
    end_date = db.Column(db.DateTime)
    days = db.Column(db.Integer)
    target_locations = db.Column(db.Unicode(255))
    exclude_locations = db.Column(db.Unicode(255))

    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)
    barnd = db.relationship('BrandsModel')

    sa.orm.configure_mappers()

    def __init__(self, campaign_name, description, brand_id, product_ids,
                 currency_id, budget_amount, objective_id, kpi_id,
                 target_locations, exclude_locations):
        self.campaign_name = campaign_name
        self.description = description
        self.brand_id = brand_id
        self.product_ids = product_ids
        self.currency_id = currency_id
        self.budget_amount = budget_amount
        self.objective_id = objective_id
        self.kpi_id = kpi_id
        self.target_locations = target_locations
        self.exclude_locations = exclude_locations

    def json(self):
        return {
            'id': self.campaign_id,
            'name': self.campaign_name,
            'token': self.token
        }

    @classmethod
    def find_by_id(cls, campaign_id):
        return cls.query.filter_by(campaign_id=campaign_id).first()

    @classmethod
    def find_by_name(cls, campaign_name):
        return cls.query.filter_by(campaign_name=campaign_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

    @classmethod
    def validateData(cls, data, _request):
        schema = {
            'campaign_name': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'description': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'brand_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'product_ids': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'currency_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'budget_amount': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'objective_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'kpi_id': {
                'required': True,
                'empty': False,
                'type': 'integer'
            },
            'target_locations': {
                'required': True,
                'empty': False,
                'type': 'string'
            },
            'exclude_locations': {
                'required': True,
                'empty': False,
                'type': 'string'
            }
        }
        v = Validator(schema)
        v.allow_unknown = True
        return True if (v.validate(data)) else v.errors
Ejemplo n.º 19
0
class BrandsModel(db.Model, VersioningMixin):
    __versioned__ = {}
    __tablename__ = 'brands'

    brand_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    token = db.Column(db.Unicode(80))
    brand_name = db.Column(db.Unicode(255), nullable=True)
    user_id = db.Column(db.Integer)
    industry_id = db.Column(db.Integer, db.ForeignKey('industry.industry_id'))
    brand_category_id = db.Column(db.Integer)
    created_by = db.Column(db.Integer)
    created_on = db.Column(db.DateTime)
    modified_by = db.Column(db.Integer)
    modified_on = db.Column(db.DateTime)
    deleted_by = db.Column(db.Integer)
    deleted_on = db.Column(db.DateTime)

    industry = db.relationship('IndustryModel')

    sa.orm.configure_mappers()

    def __init__(self, brand_name, user_id, industry_id, brand_category_id):
        self.brand_name = brand_name
        self.user_id = user_id
        self.industry_id = industry_id
        self.brand_category_id = brand_category_id

    def json(self):
        return {
            'id': self.brand_id,
            'name': self.brand_name,
            'token': self.token
        }

    @classmethod
    def find_by_id(cls, brand_id):
        return cls.query.filter_by(brand_id=brand_id).first()

    @classmethod
    def find_by_name(cls, brand_name):
        return cls.query.filter_by(brand_name=brand_name).first()

    @classmethod
    def find_all(cls):
        return cls.query.all()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

    @classmethod
    def validateData(cls, data, _request):

        if _request.method == "POST":
            schema = {
                'brand_name': {
                    'required': True,
                    'empty': False,
                    'type': 'string'
                },
                'industry_id': {
                    'required': True,
                    'empty': False,
                    'type': 'integer'
                },
                'brand_category_id': {
                    'required': True,
                    'empty': False,
                    'type': 'integer'
                }
            }
        else:
            schema = {
                'brand_name': {
                    'required': True,
                    'empty': False,
                    'type': 'string'
                }
            }

        v = Validator(schema)
        v.allow_unknown = True
        return True if (v.validate(data)) else v.errors