Subversion Repositories SmartDukaan

Rev

Rev 14039 | Rev 14826 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

from elixir import metadata, setup_all
from elixir.entity import Entity
from elixir.fields import Field
from elixir.options import using_options, using_table_options
from sqlalchemy import create_engine
from sqlalchemy.types import Integer, String, DateTime, Float, Boolean, Enum


class Users(Entity):
    id = Field(Integer(unsigned=True), primary_key=True)
    username = Field(String(128))
    email = Field(String(128))
    password = Field(String(64))
    first_name = Field(String(64))
    last_name = Field(String(64))
    mobile_number = Field(String(15))
    referral_url = Field(String(256))
    referrer = Field(String(32))
    password_reset = Field(String(64))
    activation_code = Field(String(40))
    group_id = Field(Integer(unsigned=True), default=1, server_default='1')
    status = Field(Boolean, default=True, server_default='1')
    created = Field(DateTime)
    modified = Field(DateTime)
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")
    
class user_actions(Entity):
    id = Field(Integer(unsigned=True), primary_key=True)
    user_id = Field(Integer(unsigned=True))
    store_product_id = Field(Integer(unsigned=True))
    action = Field(Enum('like','dislike'))
    created = Field(DateTime)
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")

class brand_preferences(Entity):
    id = Field(Integer(unsigned=True), primary_key=True)
    user_id = Field(Integer(unsigned=True))
    category_id = Field(Integer(unsigned=True))
    brand = Field(String(128))
    status = Field(Enum('show','hide'),default='hide', server_default='hide')
    created = Field(DateTime)
    modified = Field(DateTime)
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")
    
class price_preferences(Entity):
    id = Field(Integer(unsigned=True), primary_key=True)
    user_id = Field(Integer(unsigned=True))
    category_id = Field(Integer(unsigned=True))
    min_price = Field(Float, default=0.0, server_default="0.0")
    max_price = Field(Float, default=0.0, server_default="0.0")
    created = Field(DateTime)
    modified = Field(DateTime)
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")


def initialize(dbname='dtr', db_hostname="localhost"):
    #metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
    #metadata.bind = 'mysql://root:shop2020@localhost/catalog'
    cengine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
    metadata.bind = cengine
    metadata.bind.echo = True
    setup_all(True)

if __name__=="__main__":
    initialize()