Subversion Repositories SmartDukaan

Rev

Rev 15690 | Rev 15791 | 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))
15393 amit.gupta 24
    activated = Field(Boolean)
14039 kshitij.so 25
    group_id = Field(Integer(unsigned=True), default=1, server_default='1')
26
    status = Field(Boolean, default=True, server_default='1')
15245 manas 27
    utm_campaign = Field(String(128))
15365 amit.gupta 28
    activation_time = Field(DateTime)
14039 kshitij.so 29
    created = Field(DateTime)
30
    modified = Field(DateTime)
15191 manish.sha 31
    usergroup_id = Field(Text)
14039 kshitij.so 32
    using_options(shortnames=True)
33
    using_table_options(mysql_engine="InnoDB")
34
 
35
class user_actions(Entity):
36
    id = Field(Integer(unsigned=True), primary_key=True)
37
    user_id = Field(Integer(unsigned=True))
38
    store_product_id = Field(Integer(unsigned=True))
39
    action = Field(Enum('like','dislike'))
15392 amit.gupta 40
    created = Field(DateTime, default=func.now())
14039 kshitij.so 41
    using_options(shortnames=True)
42
    using_table_options(mysql_engine="InnoDB")
15369 amit.gupta 43
 
44
class OnboardedRetailerChecklists(Entity):    
45
    id = Field(Integer(unsigned=True), primary_key=True)
46
    retailer_id = Field(Integer(unsigned=True))
47
    number_verification = Field(Boolean)
48
    preferences = Field(Boolean)
49
    doa_return_policy = Field(Boolean)
50
    payment_option = Field(Boolean)
51
    contact_us = Field(Boolean)
15371 amit.gupta 52
    product_info = Field(Boolean)
53
    redeem = Field(Boolean)
15392 amit.gupta 54
    created = Field(DateTime,default=func.now())
15369 amit.gupta 55
    using_options(shortnames=True)
56
    using_table_options(mysql_engine="InnoDB")
14039 kshitij.so 57
 
58
class brand_preferences(Entity):
59
    id = Field(Integer(unsigned=True), primary_key=True)
60
    user_id = Field(Integer(unsigned=True))
61
    category_id = Field(Integer(unsigned=True))
62
    brand = Field(String(128))
63
    status = Field(Enum('show','hide'),default='hide', server_default='hide')
64
    created = Field(DateTime)
65
    modified = Field(DateTime)
66
    using_options(shortnames=True)
67
    using_table_options(mysql_engine="InnoDB")
68
 
69
class price_preferences(Entity):
70
    id = Field(Integer(unsigned=True), primary_key=True)
71
    user_id = Field(Integer(unsigned=True))
72
    category_id = Field(Integer(unsigned=True))
73
    min_price = Field(Float, default=0.0, server_default="0.0")
74
    max_price = Field(Float, default=0.0, server_default="0.0")
75
    created = Field(DateTime)
76
    modified = Field(DateTime)
77
    using_options(shortnames=True)
78
    using_table_options(mysql_engine="InnoDB")
79
 
14769 kshitij.so 80
class Brands(Entity):
81
    id = Field(Integer(unsigned=True), primary_key=True)
82
    name = Field(String(128))
83
    category_id = Field(Integer)
84
    using_options(shortnames=True)
85
    using_table_options(mysql_engine="InnoDB")
14859 manish.sha 86
 
14921 manish.sha 87
class Feedbacks(Entity):
14859 manish.sha 88
    id = Field(Integer(unsigned=True), primary_key=True)
89
    user_id = Field(Integer(unsigned=True))
90
    email = Field(String(128))
91
    subject = Field(String(256))
92
    message = Field(Text)
93
    created = Field(DateTime)
94
    isTicketCreated = Field(Boolean, default=False, server_default='0')
14921 manish.sha 95
    using_options(shortnames=True)
96
    using_table_options(mysql_engine="InnoDB")
14039 kshitij.so 97
 
15011 amit.gupta 98
class Postoffices(Entity):
99
    id = Field(Integer(10, unsigned=True), primary_key=True)
100
    name = Field(String(128))
101
    pincode = Field(Integer(6, unsigned=True))
102
    deliverystatus = Field(Boolean)
103
    divisionname = Field(String(128))
104
    regionname = Field(String(128))
105
    taluk = Field(String(128))
106
    district = Field(String(128))
107
    state = Field(String(128))
108
    using_options(shortnames=True)
109
    using_table_options(mysql_engine="InnoDB")
110
 
15048 kshitij.so 111
class Orders(Entity):
112
    id = Field(Integer(unsigned=True), primary_key=True)
113
    user_id = Field(Integer(unsigned=True), primary_key=True)
114
    store_id = Field(Integer(unsigned=True), primary_key=True)
115
    order_url = Field(String(256))
116
    status = Field(String(32))
117
    created = Field(DateTime)
118
    modified = Field(DateTime)
119
    using_options(shortnames=True)
120
    using_table_options(mysql_engine="InnoDB")
121
 
15532 amit.gupta 122
class FlipkartOrders(Entity):
123
    id = Field(Integer(unsigned=True), primary_key=True)
124
    user_id = Field(Integer(unsigned=True))
125
    email = Field(String(128))
126
    subtagId= Field(String(32))
127
    identifier = Field(String(32))
128
    catalogId = Field(Integer)
129
    title = Field(String(128))
130
    brand = Field(String(64))
131
    model = Field(String(64))
132
    status = Field(String(16))
133
    price = Field(Float)
134
    category = Field(String(16))
135
    quantity = Field(SmallInteger)
136
    created = Field(DateTime)
137
    modified = Field(DateTime)
138
    using_options(shortnames=True)
139
    using_table_options(mysql_engine="InnoDB")
140
 
15234 amit.gupta 141
class OrdersRaw(Entity):
142
    id = Field(Integer(unsigned=True), primary_key=True)
143
    user_id = Field(Integer(unsigned=True), primary_key=True)
144
    store_id = Field(Integer(unsigned=True), primary_key=True)
145
    order_url = Field(String(256))
15566 amit.gupta 146
    sub_tag = Field(String(32))
15554 amit.gupta 147
    rawhtml = Field(LONGTEXT)
15234 amit.gupta 148
    status = Field(String(32))
149
    created = Field(DateTime)
150
    modified = Field(DateTime)
15236 amit.gupta 151
    using_options(tablename="orders")
152
    using_table_options(useexisting=True,mysql_engine="InnoDB")
15234 amit.gupta 153
 
15081 amit.gupta 154
class Retailers(Entity):
155
    id = Field(Integer(unsigned=True), primary_key=True)
15083 amit.gupta 156
    identifier = Field(String(128))
15081 amit.gupta 157
    title = Field(String(256))
158
    address = Field(String(512))
15254 amit.gupta 159
    address_new = Field(String(512))
15081 amit.gupta 160
    agent_id=Field(Integer(unsigned=True))
161
    contact1 = Field(String(10))
162
    contact2 = Field(String(10))
163
    pin = Field(String(6))
15254 amit.gupta 164
    cod_limit = Field(Integer(10))
15675 amit.gupta 165
    city = Field(String(64))
15081 amit.gupta 166
    state = Field(String(48))
167
    status = Field(String(20))
15083 amit.gupta 168
    is_elavated = Field(Boolean)
15086 amit.gupta 169
    retry_count = Field(Integer(3))
170
    invalid_retry_count = Field(Integer(3))
15081 amit.gupta 171
    call_priority = Field(Enum('user_initiated', 'system_initiated'))
172
    next_call_time = Field(DateTime)
15086 amit.gupta 173
    is_std = Field(Boolean)
174
    is_or = Field(Boolean)
15081 amit.gupta 175
    created = Field(DateTime)
15110 amit.gupta 176
    disposition = Field(String(32))
15099 amit.gupta 177
    modified = Field(DateTime, default=func.now(), onupdate=func.now())
15081 amit.gupta 178
    using_options(shortnames=True)
179
    using_table_options(mysql_engine="InnoDB")
15331 amit.gupta 180
 
15680 amit.gupta 181
class RetailerAddresses(Entity):
15676 amit.gupta 182
    id = Field(Integer(unsigned=True), primary_key=True)
183
    retailer_id = Field(Integer(unsigned=True))
15681 amit.gupta 184
    title = Field(String(128))
15676 amit.gupta 185
    agent_id=Field(Integer(unsigned=True))
186
    address = Field(String(512))
187
    city = Field(String(64))
188
    state = Field(String(48))
189
    pin = Field(String(6))
15683 amit.gupta 190
    created = Field(DateTime,default=func.now())
15676 amit.gupta 191
    using_options(shortnames=True)
192
    using_table_options(mysql_engine="InnoDB")
15675 amit.gupta 193
class DailySourcewiseOrderInfo(Entity):
194
    id = Field(Integer(unsigned=True), primary_key=True)
195
    source = Field(Integer(2))
196
    order_count = Field(Integer(4))
197
    quantity_count = Field(Integer(4))
198
    sale_amount = Field(Integer(10))
199
    created = Field(DateTime)
200
    modified = Field(DateTime, default=func.now(), onupdate=func.now())
201
    using_options(shortnames=True)
202
    using_table_options(mysql_engine="InnoDB")
203
 
15331 amit.gupta 204
class AlreadyCalledNumbers(Entity):
205
    id = Field(Integer(unsigned=True), primary_key=True)
206
    mobile_number = Field(String(10), unique=True)
15352 amit.gupta 207
    using_options(shortnames=True)
208
    using_table_options(mysql_engine="InnoDB")
15081 amit.gupta 209
 
15710 amit.gupta 210
class Pincodeavailability(Entity):
211
    code = Field(String(6), unique=True)
212
    amount = Field(Integer(11))
213
    using_options(shortnames=True)
214
    using_table_options(mysql_engine="InnoDB")
215
 
15254 amit.gupta 216
class RetailerContacts(Entity):
217
    id = Field(Integer(unsigned=True), primary_key=True)
218
    retailer_id = Field(Integer(unsigned=True))
219
    agent_id = Field(Integer(unsigned=True))
220
    mobile_number = Field(String(10))
15260 amit.gupta 221
    contact_type = Field(Enum('sms', 'called', 'ringing'))
15254 amit.gupta 222
    call_type = Field(String(10))
223
    created = Field(DateTime,default=func.now())
224
    using_options(shortnames=True)
225
    using_table_options(mysql_engine="InnoDB")
226
 
227
 
15096 amit.gupta 228
class CallHistory(Entity):
229
    id = Field(Integer(unsigned=True), primary_key=True)
230
    retailer_id = Field(Integer(unsigned=True))
231
    agent_id = Field(Integer(unsigned=True))
232
    mobile_number = Field(String(10))
15113 amit.gupta 233
    call_type = Field(String(10))
15096 amit.gupta 234
    sms_verified = Field(Boolean)
235
    call_time = Field(DateTime)
236
    duration_sec = Field(Integer)
15234 amit.gupta 237
    last_fetch_time = Field(DateTime) 
15377 amit.gupta 238
    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', 'onboarded'))
15096 amit.gupta 239
    disposition_description = Field(String(192))
15201 manas 240
    disposition_comments = Field(String(192))
15096 amit.gupta 241
    created = Field(DateTime,default=func.now())
15110 amit.gupta 242
    using_options(shortnames=True)
243
    using_table_options(mysql_engine="InnoDB")
15096 amit.gupta 244
 
15081 amit.gupta 245
class RetryConfig(Entity):
15359 amit.gupta 246
    call_type = Field(Enum('fresh', 'followup', 'onboarding'))
15096 amit.gupta 247
    disposition_type = Field(Enum('ringing_no_answer', 'not_reachable'))
15081 amit.gupta 248
    retry_count = Field(Integer(unsigned=True))
15110 amit.gupta 249
    minutes_ahead = Field(Integer(unsigned=True))
15081 amit.gupta 250
    using_options(shortnames=True)
251
    using_table_options(mysql_engine="InnoDB")
15133 amit.gupta 252
 
253
class RetailerLinks(Entity):
15234 amit.gupta 254
    id = Field(Integer(unsigned=True), primary_key=True)
15254 amit.gupta 255
    retailer_id = Field(Integer(unsigned=True), unique=True)
15138 amit.gupta 256
    agent_id = Field(Integer(unsigned=True))
15133 amit.gupta 257
    code = Field(String(10), unique=True)
15278 amit.gupta 258
    mapped_with = Field(String)
15133 amit.gupta 259
    activated = Field(DateTime,onupdate=func.now())
15255 amit.gupta 260
    user_id = Field(Integer(unsigned=True))
15133 amit.gupta 261
    created = Field(DateTime,default=func.now())
262
    using_options(shortnames=True)
263
    using_table_options(mysql_engine="InnoDB")
15135 amit.gupta 264
 
265
class Activation_Codes(Entity):
266
    code = Field(String(10))
15138 amit.gupta 267
    created = Field(DateTime, default=func.now())
15144 amit.gupta 268
    using_options(shortnames=True)
269
    using_table_options(mysql_engine="InnoDB")
15081 amit.gupta 270
 
15189 manas 271
class Agents(Entity):
272
    id = Field(Integer(unsigned=True), primary_key=True)
273
    name = Field(String(64))
274
    email =  Field(String(100))
275
    password = Field(String(64))
276
    type = Field(Enum('crm','fos'))
277
    last_login = Field(DateTime)
15533 amit.gupta 278
    login_type = Field(String(10))
15189 manas 279
    created = Field(DateTime, default=func.now())
280
    using_options(shortnames=True)
281
    using_table_options(mysql_engine="InnoDB")
282
 
283
class Agent_Roles(Entity):    
284
    id = Field(Integer(unsigned=True), primary_key=True)
285
    agent_id = Field(Integer(unsigned=True))
286
    role = Field(Enum('fresh','followup','onboarding'))
287
    created = Field(DateTime, default=func.now())
288
    using_options(shortnames=True)
289
    using_table_options(mysql_engine="InnoDB")
15081 amit.gupta 290
 
15189 manas 291
class AgentLoginTimings(Entity):
292
    id = Field(Integer(unsigned=True), primary_key=True)
293
    agent_id = Field(Integer(unsigned=True))
294
    role = Field(Enum('fresh','followup','onboarding'))
295
    loginTime = Field(DateTime)
296
    logoutTime = Field(DateTime)
297
    created = Field(DateTime, default=func.now())   
298
    using_options(shortnames=True)
299
    using_table_options(mysql_engine="InnoDB")
15424 amit.gupta 300
 
301
class Clicks(Entity):
302
    id = Field(Integer(unsigned=True), primary_key=True)
303
    user_id = Field(Integer(unsigned=True))
304
    tag = Field(String(20))
305
    created = Field(DateTime, default=func.now())   
306
    using_options(shortnames=True)
307
    using_table_options(mysql_engine="InnoDB")
15189 manas 308
 
15234 amit.gupta 309
class FetchDataHistory(Entity):
310
    id = Field(Integer(unsigned=True), primary_key=True)
311
    retailer_id = Field(Integer(unsigned=True))
312
    agent_id = Field(Integer(unsigned=True))
313
    call_type = Field(String(10))
314
    last_action = Field(Enum('login','disposition'))
315
    last_action_time = Field(DateTime)
316
    created = Field(DateTime,default=func.now())
317
    using_options(shortnames=True)
318
    using_table_options(mysql_engine="InnoDB")
319
 
15690 manish.sha 320
class Pushnotifications(Entity):
321
    id = Field(Integer(unsigned=True), primary_key=True)
322
    user_id = Field(Integer(unsigned=True))
323
    notification_campaign_id = Field(Integer(unsigned=True))
324
    type = Field(String(16))
325
    status = Field(Boolean)
326
    message = Field(String(64))
327
    response_time = Field(DateTime)
328
    created = Field(DateTime)
329
    using_options(shortnames=True)
330
    using_table_options(mysql_engine="InnoDB")
331
 
332
 
14826 kshitij.so 333
def initialize(dbname='dtr', db_hostname="localhost", echo=True):
14039 kshitij.so 334
    #metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
335
    #metadata.bind = 'mysql://root:shop2020@localhost/catalog'
336
    cengine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
337
    metadata.bind = cengine
14826 kshitij.so 338
    metadata.bind.echo = echo
14039 kshitij.so 339
    setup_all(True)
340
 
341
if __name__=="__main__":
342
    initialize()
15011 amit.gupta 343
 
344
 
345