Subversion Repositories SmartDukaan

Rev

Rev 12929 | Blame | Compare with Previous | Last modification | View Log | RSS feed

'''
Created on 14-Jul-2010

@author: ashish
'''
from sqlalchemy import create_engine
from elixir import *
import elixir

from shop2020.helpers.impl.model import DashboardUser

class Message(Entity):
    id = Field(Integer, primary_key=True, autoincrement=True)
    message_id = Field(Integer)
    message = Field(String(200))
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")
    
class LogisticsUser(Entity):
    username = Field(String(30), primary_key=True)
    password = Field(String(30))
    providerId = Field(Integer)
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")

class StatisticsUser(Entity):
    username = Field(String(30), primary_key=True)
    password = Field(String(30))
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")

class Report(Entity):
    id = Field(Integer, primary_key=True, autoincrement=True)
    description = Field(String(100))
    controller = Field(String(100))
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")

class ReportUser(Entity):
    username = Field(String(30), primary_key=True)
    password = Field(String(30))
    role = Field(Integer)
    email = Field(String(50))
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")

class ReportRoleAuthority(Entity):
    report = ManyToOne("Report", primary_key=True)
    role = Field(Integer, primary_key=True)
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")

class UserEmail(Entity):
    id = Field(Integer, primary_key=True, autoincrement=True)
    emailTo = Field(String(256))
    emailFrom = Field(String(60))
    subject = Field(String(120))
    body = Field(Text())
    source = Field(String(20))
    emailType = Field(String(40))
    status = Field(Boolean())
    timestamp = Field(DateTime())
    cc = Field(String(256))
    bcc = Field(String(256))
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")
    
class UserEmailArchive(Entity):
    id = Field(Integer, primary_key=True)
    emailTo = Field(String(256))
    emailFrom = Field(String(60))
    subject = Field(String(120))
    body = Field(Text())
    source = Field(String(20))
    emailType = Field(String(40))
    status = Field(Boolean())
    timestamp = Field(DateTime())
    cc = Field(String(256))
    bcc = Field(String(256))
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")
    
class CatalogDashboardUser(Entity):
    username = Field(String(30), primary_key=True)
    password =  Field(String(30))
    loggedOn = Field(DateTime)
    role = Field(Integer)
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")
    
class EntitiesShared(Entity):
    entityIds = Field(String(100))
    email = Field(String(100))
    isEmailed = Field(Boolean)
    using_options(shortnames=True)
    using_table_options(mysql_engine="InnoDB")
    
class QuickLink(Entity):
    id = Field(Integer, primary_key=True)
    url = Field(String(220))
    text = Field(String(220))
    using_options(shortnames = True)
    using_table_options(mysql_engine = "InnoDB")

class AgentWarehouseMapping(Entity):
    agentId = Field(Integer, primary_key=True)
    warehouseId = Field(Integer, primary_key=True)
    using_options(shortnames = True)
    using_table_options(mysql_engine = "InnoDB")
    
    
class DealerAuth(Entity):
    username = Field(String(100), primary_key=True)
    password = Field(String(100))
    role = Field(Integer)
    createdOn = Field(DateTime)
    lastLoggedIn = Field(DateTime)
    lattitude = Field(Float)
    longitude = Field(Float)
    isActive = Field(Boolean)
    using_options(shortnames = True)
    using_table_options(mysql_engine = "InnoDB")

class UserSms(Entity):
    id = Field(Integer, primary_key=True, autoincrement=True)
    user_id = Field(Integer)
    mobileNumber = Field(String(20))
    smsText = Field(String(800))
    type = Field(Enum('TRANSACTIONAL','PROMOTIONAL','SERVICE_ALERT'))
    status = Field(Enum('IN_PROCESS','DELIVERED','UNDELIVERED','SERVICE_ERROR','UNVALID_NUMBER'))
    attempts = Field(Integer)
    createdTimestamp = Field(DateTime)
    responseId = Field(String(30))
    responseText = Field(String(150))
    deliveryStatus = Field(Enum('NOT_SENT','SENT_TO_OPERATOR','SUBMITTED_TO_SMSC','GOT_STATUS_CODE'))
    using_options(shortnames = True)
    using_table_options(mysql_engine = "InnoDB") 

class UserSmsInfo(Entity):
    userId = Field(Integer, primary_key=True, autoincrement=False)
    mobileNo = Field(String(20))
    dailyCount = Field(Integer)
    weeklyCount = Field(Integer)
    dndStatus = Field(Boolean)
    smsSubscribed = Field(Boolean)
    createdTimestamp = Field(DateTime) 
    updateTimestamp = Field(DateTime)
    using_options(shortnames = True)
    using_table_options(mysql_engine = "InnoDB")
    
class UserSmsArchive(Entity):
    id = Field(Integer, primary_key=True, autoincrement=True)
    user_id = Field(Integer)
    mobileNumber = Field(String(20))
    smsText = Field(String(800))
    type = Field(Enum('TRANSACTIONAL','PROMOTIONAL','SERVICE_ALERT'))
    status = Field(Enum('IN_PROCESS','DELIVERED','UNDELIVERED','SERVICE_ERROR','UNVALID_NUMBER'))
    attempts = Field(Integer)
    createdTimestamp = Field(DateTime)
    responseId = Field(String(30))
    responseText = Field(String(150))
    deliveryStatus = Field(Enum('NOT_SENT','SENT_TO_OPERATOR','SUBMITTED_TO_SMSC','GOT_STATUS_CODE'))
    using_options(shortnames = True)
    using_table_options(mysql_engine = "InnoDB")

class Campaigns(Entity):
    userEmail = Field(String(256),primary_key=True)
    campaignType = Field(Integer,primary_key=True,autoincrement=False)
    using_options(shortnames = True)
    using_table_options(mysql_engine = "InnoDB")
    

def initialize(dbname='helper', db_hostname='localhost'):
    #metadata.bind = "sqlite:///message.sqlite" #need to read it from configserver.
    engine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
    metadata.bind = engine
    metadata.bind.echo = True
    setup_all(True)

if __name__=="__main__":
    initialize()