Subversion Repositories SmartDukaan

Rev

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