Subversion Repositories SmartDukaan

Rev

Rev 15365 | Rev 15371 | 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))
15365 amit.gupta 27
    activation_time = Field(DateTime)
14039 kshitij.so 28
    created = Field(DateTime)
29
    modified = Field(DateTime)
15191 manish.sha 30
    usergroup_id = Field(Text)
14039 kshitij.so 31
    using_options(shortnames=True)
32
    using_table_options(mysql_engine="InnoDB")
33
 
34
class user_actions(Entity):
35
    id = Field(Integer(unsigned=True), primary_key=True)
36
    user_id = Field(Integer(unsigned=True))
37
    store_product_id = Field(Integer(unsigned=True))
38
    action = Field(Enum('like','dislike'))
39
    created = Field(DateTime)
40
    using_options(shortnames=True)
41
    using_table_options(mysql_engine="InnoDB")
15369 amit.gupta 42
 
43
class OnboardedRetailerChecklists(Entity):    
44
    id = Field(Integer(unsigned=True), primary_key=True)
45
    retailer_id = Field(Integer(unsigned=True))
46
    number_verification = Field(Boolean)
47
    preferences = Field(Boolean)
48
    doa_return_policy = Field(Boolean)
49
    payment_option = Field(Boolean)
50
    contact_us = Field(Boolean)
51
    product_info = Field(DateTime)
52
    redeem = Field(DateTime)
53
    using_options(shortnames=True)
54
    using_table_options(mysql_engine="InnoDB")
14039 kshitij.so 55
 
56
class brand_preferences(Entity):
57
    id = Field(Integer(unsigned=True), primary_key=True)
58
    user_id = Field(Integer(unsigned=True))
59
    category_id = Field(Integer(unsigned=True))
60
    brand = Field(String(128))
61
    status = Field(Enum('show','hide'),default='hide', server_default='hide')
62
    created = Field(DateTime)
63
    modified = Field(DateTime)
64
    using_options(shortnames=True)
65
    using_table_options(mysql_engine="InnoDB")
66
 
67
class price_preferences(Entity):
68
    id = Field(Integer(unsigned=True), primary_key=True)
69
    user_id = Field(Integer(unsigned=True))
70
    category_id = Field(Integer(unsigned=True))
71
    min_price = Field(Float, default=0.0, server_default="0.0")
72
    max_price = Field(Float, default=0.0, server_default="0.0")
73
    created = Field(DateTime)
74
    modified = Field(DateTime)
75
    using_options(shortnames=True)
76
    using_table_options(mysql_engine="InnoDB")
77
 
14769 kshitij.so 78
class Brands(Entity):
79
    id = Field(Integer(unsigned=True), primary_key=True)
80
    name = Field(String(128))
81
    category_id = Field(Integer)
82
    using_options(shortnames=True)
83
    using_table_options(mysql_engine="InnoDB")
14859 manish.sha 84
 
14921 manish.sha 85
class Feedbacks(Entity):
14859 manish.sha 86
    id = Field(Integer(unsigned=True), primary_key=True)
87
    user_id = Field(Integer(unsigned=True))
88
    email = Field(String(128))
89
    subject = Field(String(256))
90
    message = Field(Text)
91
    created = Field(DateTime)
92
    isTicketCreated = Field(Boolean, default=False, server_default='0')
14921 manish.sha 93
    using_options(shortnames=True)
94
    using_table_options(mysql_engine="InnoDB")
14039 kshitij.so 95
 
15011 amit.gupta 96
class Postoffices(Entity):
97
    id = Field(Integer(10, unsigned=True), primary_key=True)
98
    name = Field(String(128))
99
    pincode = Field(Integer(6, unsigned=True))
100
    deliverystatus = Field(Boolean)
101
    divisionname = Field(String(128))
102
    regionname = Field(String(128))
103
    taluk = Field(String(128))
104
    district = Field(String(128))
105
    state = Field(String(128))
106
    using_options(shortnames=True)
107
    using_table_options(mysql_engine="InnoDB")
108
 
15048 kshitij.so 109
class Orders(Entity):
110
    id = Field(Integer(unsigned=True), primary_key=True)
111
    user_id = Field(Integer(unsigned=True), primary_key=True)
112
    store_id = Field(Integer(unsigned=True), primary_key=True)
113
    order_url = Field(String(256))
114
    status = Field(String(32))
115
    created = Field(DateTime)
116
    modified = Field(DateTime)
117
    using_options(shortnames=True)
118
    using_table_options(mysql_engine="InnoDB")
119
 
15234 amit.gupta 120
class OrdersRaw(Entity):
121
    id = Field(Integer(unsigned=True), primary_key=True)
122
    user_id = Field(Integer(unsigned=True), primary_key=True)
123
    store_id = Field(Integer(unsigned=True), primary_key=True)
124
    order_url = Field(String(256))
125
    raw_html = Field(LONGTEXT)
126
    status = Field(String(32))
127
    created = Field(DateTime)
128
    modified = Field(DateTime)
15236 amit.gupta 129
    using_options(tablename="orders")
130
    using_table_options(useexisting=True,mysql_engine="InnoDB")
15234 amit.gupta 131
 
15081 amit.gupta 132
class Retailers(Entity):
133
    id = Field(Integer(unsigned=True), primary_key=True)
15083 amit.gupta 134
    identifier = Field(String(128))
15081 amit.gupta 135
    title = Field(String(256))
136
    address = Field(String(512))
15254 amit.gupta 137
    address_new = Field(String(512))
15081 amit.gupta 138
    agent_id=Field(Integer(unsigned=True))
139
    contact1 = Field(String(10))
140
    contact2 = Field(String(10))
141
    pin = Field(String(6))
15254 amit.gupta 142
    cod_limit = Field(Integer(10))
15081 amit.gupta 143
    state = Field(String(48))
144
    status = Field(String(20))
15083 amit.gupta 145
    is_elavated = Field(Boolean)
15086 amit.gupta 146
    retry_count = Field(Integer(3))
147
    invalid_retry_count = Field(Integer(3))
15081 amit.gupta 148
    call_priority = Field(Enum('user_initiated', 'system_initiated'))
149
    next_call_time = Field(DateTime)
15086 amit.gupta 150
    is_std = Field(Boolean)
151
    is_or = Field(Boolean)
15081 amit.gupta 152
    created = Field(DateTime)
15110 amit.gupta 153
    disposition = Field(String(32))
15099 amit.gupta 154
    modified = Field(DateTime, default=func.now(), onupdate=func.now())
15081 amit.gupta 155
    using_options(shortnames=True)
156
    using_table_options(mysql_engine="InnoDB")
15331 amit.gupta 157
 
158
class AlreadyCalledNumbers(Entity):
159
    id = Field(Integer(unsigned=True), primary_key=True)
160
    mobile_number = Field(String(10), unique=True)
15352 amit.gupta 161
    using_options(shortnames=True)
162
    using_table_options(mysql_engine="InnoDB")
15081 amit.gupta 163
 
15254 amit.gupta 164
class RetailerContacts(Entity):
165
    id = Field(Integer(unsigned=True), primary_key=True)
166
    retailer_id = Field(Integer(unsigned=True))
167
    agent_id = Field(Integer(unsigned=True))
168
    mobile_number = Field(String(10))
15260 amit.gupta 169
    contact_type = Field(Enum('sms', 'called', 'ringing'))
15254 amit.gupta 170
    call_type = Field(String(10))
171
    created = Field(DateTime,default=func.now())
172
    using_options(shortnames=True)
173
    using_table_options(mysql_engine="InnoDB")
174
 
175
 
15096 amit.gupta 176
class CallHistory(Entity):
177
    id = Field(Integer(unsigned=True), primary_key=True)
178
    retailer_id = Field(Integer(unsigned=True))
179
    agent_id = Field(Integer(unsigned=True))
180
    mobile_number = Field(String(10))
15113 amit.gupta 181
    call_type = Field(String(10))
15096 amit.gupta 182
    sms_verified = Field(Boolean)
183
    call_time = Field(DateTime)
184
    duration_sec = Field(Integer)
15234 amit.gupta 185
    last_fetch_time = Field(DateTime) 
15110 amit.gupta 186
    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 187
    disposition_description = Field(String(192))
15201 manas 188
    disposition_comments = Field(String(192))
15096 amit.gupta 189
    created = Field(DateTime,default=func.now())
15110 amit.gupta 190
    using_options(shortnames=True)
191
    using_table_options(mysql_engine="InnoDB")
15096 amit.gupta 192
 
15081 amit.gupta 193
class RetryConfig(Entity):
15359 amit.gupta 194
    call_type = Field(Enum('fresh', 'followup', 'onboarding'))
15096 amit.gupta 195
    disposition_type = Field(Enum('ringing_no_answer', 'not_reachable'))
15081 amit.gupta 196
    retry_count = Field(Integer(unsigned=True))
15110 amit.gupta 197
    minutes_ahead = Field(Integer(unsigned=True))
15081 amit.gupta 198
    using_options(shortnames=True)
199
    using_table_options(mysql_engine="InnoDB")
15133 amit.gupta 200
 
201
class RetailerLinks(Entity):
15234 amit.gupta 202
    id = Field(Integer(unsigned=True), primary_key=True)
15254 amit.gupta 203
    retailer_id = Field(Integer(unsigned=True), unique=True)
15138 amit.gupta 204
    agent_id = Field(Integer(unsigned=True))
15133 amit.gupta 205
    code = Field(String(10), unique=True)
15278 amit.gupta 206
    mapped_with = Field(String)
15133 amit.gupta 207
    activated = Field(DateTime,onupdate=func.now())
15255 amit.gupta 208
    user_id = Field(Integer(unsigned=True))
15133 amit.gupta 209
    created = Field(DateTime,default=func.now())
210
    using_options(shortnames=True)
211
    using_table_options(mysql_engine="InnoDB")
15135 amit.gupta 212
 
213
class Activation_Codes(Entity):
214
    code = Field(String(10))
15138 amit.gupta 215
    created = Field(DateTime, default=func.now())
15144 amit.gupta 216
    using_options(shortnames=True)
217
    using_table_options(mysql_engine="InnoDB")
15081 amit.gupta 218
 
15189 manas 219
class Agents(Entity):
220
    id = Field(Integer(unsigned=True), primary_key=True)
221
    name = Field(String(64))
222
    email =  Field(String(100))
223
    password = Field(String(64))
224
    type = Field(Enum('crm','fos'))
225
    last_login = Field(DateTime)
226
    created = Field(DateTime, default=func.now())
227
    using_options(shortnames=True)
228
    using_table_options(mysql_engine="InnoDB")
229
 
230
class Agent_Roles(Entity):    
231
    id = Field(Integer(unsigned=True), primary_key=True)
232
    agent_id = Field(Integer(unsigned=True))
233
    role = Field(Enum('fresh','followup','onboarding'))
234
    created = Field(DateTime, default=func.now())
235
    using_options(shortnames=True)
236
    using_table_options(mysql_engine="InnoDB")
15081 amit.gupta 237
 
15189 manas 238
class AgentLoginTimings(Entity):
239
    id = Field(Integer(unsigned=True), primary_key=True)
240
    agent_id = Field(Integer(unsigned=True))
241
    role = Field(Enum('fresh','followup','onboarding'))
242
    loginTime = Field(DateTime)
243
    logoutTime = Field(DateTime)
244
    created = Field(DateTime, default=func.now())   
245
    using_options(shortnames=True)
246
    using_table_options(mysql_engine="InnoDB")
247
 
15234 amit.gupta 248
class FetchDataHistory(Entity):
249
    id = Field(Integer(unsigned=True), primary_key=True)
250
    retailer_id = Field(Integer(unsigned=True))
251
    agent_id = Field(Integer(unsigned=True))
252
    call_type = Field(String(10))
253
    last_action = Field(Enum('login','disposition'))
254
    last_action_time = Field(DateTime)
255
    created = Field(DateTime,default=func.now())
256
    using_options(shortnames=True)
257
    using_table_options(mysql_engine="InnoDB")
258
 
14826 kshitij.so 259
def initialize(dbname='dtr', db_hostname="localhost", echo=True):
14039 kshitij.so 260
    #metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
261
    #metadata.bind = 'mysql://root:shop2020@localhost/catalog'
262
    cengine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
263
    metadata.bind = cengine
14826 kshitij.so 264
    metadata.bind.echo = echo
14039 kshitij.so 265
    setup_all(True)
266
 
267
if __name__=="__main__":
268
    initialize()
15011 amit.gupta 269
 
270
 
271