Subversion Repositories SmartDukaan

Rev

Rev 15236 | Rev 15254 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
15086 amit.gupta 1
from sqlalchemy import create_engine
15011 amit.gupta 2
from elixir import *
14039 kshitij.so 3
from elixir.entity import Entity
4
from elixir.fields import Field
5
from elixir.options import using_options, using_table_options
15081 amit.gupta 6
from sqlalchemy.sql.expression import func
15011 amit.gupta 7
from sqlalchemy.types import Integer, String, DateTime, Float, Boolean, Enum, \
8
    Text
15234 amit.gupta 9
from sqlalchemy.dialects.mysql.base import LONGTEXT
14039 kshitij.so 10
 
11
 
12
class Users(Entity):
13
    id = Field(Integer(unsigned=True), primary_key=True)
14
    username = Field(String(128))
15
    email = Field(String(128))
16
    password = Field(String(64))
17
    first_name = Field(String(64))
18
    last_name = Field(String(64))
19
    mobile_number = Field(String(15))
20
    referral_url = Field(String(256))
21
    referrer = Field(String(32))
22
    password_reset = Field(String(64))
23
    activation_code = Field(String(40))
24
    group_id = Field(Integer(unsigned=True), default=1, server_default='1')
25
    status = Field(Boolean, default=True, server_default='1')
15245 manas 26
    utm_campaign = Field(String(128))
14039 kshitij.so 27
    created = Field(DateTime)
28
    modified = Field(DateTime)
15191 manish.sha 29
    usergroup_id = Field(Text)
14039 kshitij.so 30
    using_options(shortnames=True)
31
    using_table_options(mysql_engine="InnoDB")
32
 
33
class user_actions(Entity):
34
    id = Field(Integer(unsigned=True), primary_key=True)
35
    user_id = Field(Integer(unsigned=True))
36
    store_product_id = Field(Integer(unsigned=True))
37
    action = Field(Enum('like','dislike'))
38
    created = Field(DateTime)
39
    using_options(shortnames=True)
40
    using_table_options(mysql_engine="InnoDB")
41
 
42
class brand_preferences(Entity):
43
    id = Field(Integer(unsigned=True), primary_key=True)
44
    user_id = Field(Integer(unsigned=True))
45
    category_id = Field(Integer(unsigned=True))
46
    brand = Field(String(128))
47
    status = Field(Enum('show','hide'),default='hide', server_default='hide')
48
    created = Field(DateTime)
49
    modified = Field(DateTime)
50
    using_options(shortnames=True)
51
    using_table_options(mysql_engine="InnoDB")
52
 
53
class price_preferences(Entity):
54
    id = Field(Integer(unsigned=True), primary_key=True)
55
    user_id = Field(Integer(unsigned=True))
56
    category_id = Field(Integer(unsigned=True))
57
    min_price = Field(Float, default=0.0, server_default="0.0")
58
    max_price = Field(Float, default=0.0, server_default="0.0")
59
    created = Field(DateTime)
60
    modified = Field(DateTime)
61
    using_options(shortnames=True)
62
    using_table_options(mysql_engine="InnoDB")
63
 
14769 kshitij.so 64
class Brands(Entity):
65
    id = Field(Integer(unsigned=True), primary_key=True)
66
    name = Field(String(128))
67
    category_id = Field(Integer)
68
    using_options(shortnames=True)
69
    using_table_options(mysql_engine="InnoDB")
14859 manish.sha 70
 
14921 manish.sha 71
class Feedbacks(Entity):
14859 manish.sha 72
    id = Field(Integer(unsigned=True), primary_key=True)
73
    user_id = Field(Integer(unsigned=True))
74
    email = Field(String(128))
75
    subject = Field(String(256))
76
    message = Field(Text)
77
    created = Field(DateTime)
78
    isTicketCreated = Field(Boolean, default=False, server_default='0')
14921 manish.sha 79
    using_options(shortnames=True)
80
    using_table_options(mysql_engine="InnoDB")
14039 kshitij.so 81
 
15011 amit.gupta 82
class Postoffices(Entity):
83
    id = Field(Integer(10, unsigned=True), primary_key=True)
84
    name = Field(String(128))
85
    pincode = Field(Integer(6, unsigned=True))
86
    deliverystatus = Field(Boolean)
87
    divisionname = Field(String(128))
88
    regionname = Field(String(128))
89
    taluk = Field(String(128))
90
    district = Field(String(128))
91
    state = Field(String(128))
92
    using_options(shortnames=True)
93
    using_table_options(mysql_engine="InnoDB")
94
 
15048 kshitij.so 95
class Orders(Entity):
96
    id = Field(Integer(unsigned=True), primary_key=True)
97
    user_id = Field(Integer(unsigned=True), primary_key=True)
98
    store_id = Field(Integer(unsigned=True), primary_key=True)
99
    order_url = Field(String(256))
100
    status = Field(String(32))
101
    created = Field(DateTime)
102
    modified = Field(DateTime)
103
    using_options(shortnames=True)
104
    using_table_options(mysql_engine="InnoDB")
105
 
15234 amit.gupta 106
class OrdersRaw(Entity):
107
    id = Field(Integer(unsigned=True), primary_key=True)
108
    user_id = Field(Integer(unsigned=True), primary_key=True)
109
    store_id = Field(Integer(unsigned=True), primary_key=True)
110
    order_url = Field(String(256))
111
    raw_html = Field(LONGTEXT)
112
    status = Field(String(32))
113
    created = Field(DateTime)
114
    modified = Field(DateTime)
15236 amit.gupta 115
    using_options(tablename="orders")
116
    using_table_options(useexisting=True,mysql_engine="InnoDB")
15234 amit.gupta 117
 
15081 amit.gupta 118
class Retailers(Entity):
119
    id = Field(Integer(unsigned=True), primary_key=True)
15083 amit.gupta 120
    identifier = Field(String(128))
15081 amit.gupta 121
    title = Field(String(256))
122
    address = Field(String(512))
123
    agent_id=Field(Integer(unsigned=True))
124
    contact1 = Field(String(10))
125
    contact2 = Field(String(10))
126
    pin = Field(String(6))
127
    state = Field(String(48))
128
    status = Field(String(20))
15083 amit.gupta 129
    is_elavated = Field(Boolean)
15086 amit.gupta 130
    retry_count = Field(Integer(3))
131
    invalid_retry_count = Field(Integer(3))
15081 amit.gupta 132
    call_priority = Field(Enum('user_initiated', 'system_initiated'))
133
    next_call_time = Field(DateTime)
15086 amit.gupta 134
    is_std = Field(Boolean)
135
    is_or = Field(Boolean)
15081 amit.gupta 136
    created = Field(DateTime)
15110 amit.gupta 137
    disposition = Field(String(32))
15099 amit.gupta 138
    modified = Field(DateTime, default=func.now(), onupdate=func.now())
15081 amit.gupta 139
    using_options(shortnames=True)
140
    using_table_options(mysql_engine="InnoDB")
141
 
15096 amit.gupta 142
class CallHistory(Entity):
143
    id = Field(Integer(unsigned=True), primary_key=True)
144
    retailer_id = Field(Integer(unsigned=True))
145
    agent_id = Field(Integer(unsigned=True))
146
    mobile_number = Field(String(10))
15113 amit.gupta 147
    call_type = Field(String(10))
15096 amit.gupta 148
    sms_verified = Field(Boolean)
149
    call_time = Field(DateTime)
150
    duration_sec = Field(Integer)
15234 amit.gupta 151
    last_fetch_time = Field(DateTime) 
15110 amit.gupta 152
    call_disposition = Field(Enum('call_later','ringing_no_answer', 'not_reachable', 'switch_off', 'invalid_no', 'wrong_no', 'hang_up','retailer_not_interested', 'alreadyuser', 'verified_link_sent'))
15096 amit.gupta 153
    disposition_description = Field(String(192))
15201 manas 154
    disposition_comments = Field(String(192))
15096 amit.gupta 155
    created = Field(DateTime,default=func.now())
15110 amit.gupta 156
    using_options(shortnames=True)
157
    using_table_options(mysql_engine="InnoDB")
15096 amit.gupta 158
 
15081 amit.gupta 159
class RetryConfig(Entity):
160
    call_type = Field(Enum('fresh', 'followup'))
15096 amit.gupta 161
    disposition_type = Field(Enum('ringing_no_answer', 'not_reachable'))
15081 amit.gupta 162
    retry_count = Field(Integer(unsigned=True))
15110 amit.gupta 163
    minutes_ahead = Field(Integer(unsigned=True))
15081 amit.gupta 164
    using_options(shortnames=True)
165
    using_table_options(mysql_engine="InnoDB")
15133 amit.gupta 166
 
167
class RetailerLinks(Entity):
15234 amit.gupta 168
    id = Field(Integer(unsigned=True), primary_key=True)
15133 amit.gupta 169
    retailer_id = Field(Integer(unsigned=True))
15138 amit.gupta 170
    agent_id = Field(Integer(unsigned=True))
15133 amit.gupta 171
    code = Field(String(10), unique=True)
172
    is_activated = Field(Boolean)
173
    activated = Field(DateTime,onupdate=func.now())
174
    created = Field(DateTime,default=func.now())
175
    using_options(shortnames=True)
176
    using_table_options(mysql_engine="InnoDB")
15135 amit.gupta 177
 
178
class Activation_Codes(Entity):
179
    code = Field(String(10))
15138 amit.gupta 180
    created = Field(DateTime, default=func.now())
15144 amit.gupta 181
    using_options(shortnames=True)
182
    using_table_options(mysql_engine="InnoDB")
15081 amit.gupta 183
 
15189 manas 184
class Agents(Entity):
185
    id = Field(Integer(unsigned=True), primary_key=True)
186
    name = Field(String(64))
187
    email =  Field(String(100))
188
    password = Field(String(64))
189
    type = Field(Enum('crm','fos'))
190
    last_login = Field(DateTime)
191
    created = Field(DateTime, default=func.now())
192
    using_options(shortnames=True)
193
    using_table_options(mysql_engine="InnoDB")
194
 
195
class Agent_Roles(Entity):    
196
    id = Field(Integer(unsigned=True), primary_key=True)
197
    agent_id = Field(Integer(unsigned=True))
198
    role = Field(Enum('fresh','followup','onboarding'))
199
    created = Field(DateTime, default=func.now())
200
    using_options(shortnames=True)
201
    using_table_options(mysql_engine="InnoDB")
15081 amit.gupta 202
 
15189 manas 203
class AgentLoginTimings(Entity):
204
    id = Field(Integer(unsigned=True), primary_key=True)
205
    agent_id = Field(Integer(unsigned=True))
206
    role = Field(Enum('fresh','followup','onboarding'))
207
    loginTime = Field(DateTime)
208
    logoutTime = Field(DateTime)
209
    created = Field(DateTime, default=func.now())   
210
    using_options(shortnames=True)
211
    using_table_options(mysql_engine="InnoDB")
212
 
15234 amit.gupta 213
class FetchDataHistory(Entity):
214
    id = Field(Integer(unsigned=True), primary_key=True)
215
    retailer_id = Field(Integer(unsigned=True))
216
    agent_id = Field(Integer(unsigned=True))
217
    call_type = Field(String(10))
218
    last_action = Field(Enum('login','disposition'))
219
    last_action_time = Field(DateTime)
220
    created = Field(DateTime,default=func.now())
221
    using_options(shortnames=True)
222
    using_table_options(mysql_engine="InnoDB")
223
 
14826 kshitij.so 224
def initialize(dbname='dtr', db_hostname="localhost", echo=True):
14039 kshitij.so 225
    #metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
226
    #metadata.bind = 'mysql://root:shop2020@localhost/catalog'
227
    cengine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
228
    metadata.bind = cengine
14826 kshitij.so 229
    metadata.bind.echo = echo
14039 kshitij.so 230
    setup_all(True)
231
 
232
if __name__=="__main__":
233
    initialize()
15011 amit.gupta 234
 
235
 
236