Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
94 ashish 1
'''
2
Created on 22-Mar-2010
3
 
4
@author: ashish
5
'''
4873 mandeep.dh 6
from elixir import metadata, setup_all
94 ashish 7
from elixir.entity import Entity
8
from elixir.fields import Field
4873 mandeep.dh 9
from elixir.options import using_options, using_table_options
5318 rajveer 10
from elixir.relationships import OneToMany, ManyToOne
4873 mandeep.dh 11
from sqlalchemy import create_engine
6903 anupam.sin 12
from sqlalchemy.types import Integer, String, DateTime, Float, Boolean, Text, Enum, BigInteger
4873 mandeep.dh 13
import datetime
14
import elixir
94 ashish 15
 
626 chandransh 16
class EntityIDGenerator(Entity):
17
    id=Field(Integer, primary_key=True)
18
    using_options(shortnames=True)
746 rajveer 19
    using_table_options(mysql_engine="InnoDB")
122 ashish 20
 
94 ashish 21
class Item(Entity):
122 ashish 22
    id = Field(Integer, primary_key=True, autoincrement=True)
963 chandransh 23
    product_group = Field(String(100))
4917 phani.kuma 24
    brand = Field(String(100), default='', server_default='')
25
    model_number = Field(String(50), default='', server_default='')
26
    model_name = Field(String(100), default='', server_default='')
27
    color = Field(String(20), default='', server_default='')
28
    category = Field(Integer, default=0, server_default="0")
483 rajveer 29
    comments = Field(String(200))
122 ashish 30
    catalog_item_id = Field(Integer)
31
    feature_id = Field(Integer)
32
    feature_description = Field(String(200))
483 rajveer 33
    mrp = Field(Float)
34
    sellingPrice = Field(Float)
35
    weight = Field(Float)
122 ashish 36
    addedOn = Field(DateTime)
609 chandransh 37
    updatedOn = Field(DateTime)
122 ashish 38
    startDate = Field(DateTime)
39
    retireDate = Field(DateTime)
5217 amit.gupta 40
    comingSoonStartDate = Field(DateTime)
41
    expectedArrivalDate = Field(DateTime)
483 rajveer 42
    status = Field(Integer)
2035 rajveer 43
    status_description = Field(String(100))
609 chandransh 44
    bestDealText = Field(String(100))
6777 vikram.rag 45
    bestDealsDetailsText = Field(String(1000))
46
    bestDealsDetailsLink = Field(String(200))
630 chandransh 47
    bestDealValue = Field(Float)
621 chandransh 48
    bestSellingRank = Field(Integer)
103 ashish 49
    statusChangeLog = OneToMany("ItemChangeLog")
1910 varun.gupt 50
    defaultForEntity = Field(Boolean)
2251 ankur.sing 51
    risky = Field(Boolean)
3355 chandransh 52
    expectedDelay = Field(Integer)
4295 varun.gupt 53
    warranty_period = Field(Integer)
4406 anupam.sin 54
    isWarehousePreferenceSticky = Field(Boolean)
4506 phani.kuma 55
    preferredVendor = Field(Integer)
5135 mandeep.dh 56
    type = Field(Enum('SERIALIZED', 'NON_SERIALIZED'), default = 'NON_SERIALIZED', server_default='NON_SERIALIZED')
5385 phani.kuma 57
    hasItemNo = Field(Boolean)
7256 rajveer 58
    activeOnStore = Field(Boolean)
6241 amit.gupta 59
    showSellingPrice = Field(Boolean)
6805 anupam.sin 60
    preferredInsurer = Field(Integer)
7291 vikram.rag 61
    asin = Field(String(20))
62
    holdInventory = Field(Integer, default=0, server_default="0")
63
    defaultInventory = Field(Integer, default=0, server_default="0")
746 rajveer 64
    using_options(shortnames=True)
65
    using_table_options(mysql_engine="InnoDB")
103 ashish 66
 
94 ashish 67
    def __repr__(self):
122 ashish 68
        return "<Item>%d</item>" % (self.id)
1308 chandransh 69
 
7330 amit.gupta 70
class ItemVatMaster(Entity):
71
    itemId = Field(Integer, primary_key=True,  autoincrement=False)
72
    stateId = Field(Integer, primary_key=True,  autoincrement=False)
73
    vatPercentage = Field(Float)
74
    using_options(shortnames=True)
75
    using_table_options(mysql_engine="InnoDB")
76
 
77
 
103 ashish 78
class ItemChangeLog(Entity):
122 ashish 79
    id = Field(Integer, primary_key=True, autoincrement=True)
103 ashish 80
    old_status = Field(Integer)
81
    new_status = Field(Integer)
1308 chandransh 82
    timestamp = Field(DateTime)
103 ashish 83
    item = ManyToOne("Item")
746 rajveer 84
    using_options(shortnames=True)
85
    using_table_options(mysql_engine="InnoDB")
94 ashish 86
 
103 ashish 87
    def __repr__(self):
88
        return "<Log><id>%d</id><item>%d</item><old_status>%d</old_status><new_status>%d</new_status></Log>" %(self.id,self.item.id, self.old_status, self.new_status)    
94 ashish 89
 
635 rajveer 90
class Category(Entity):
1970 rajveer 91
    id = Field(Integer, primary_key=True, autoincrement=False)
92
    label = Field(String(50))
93
    description = Field(String(200))
94
    parent_category_id = Field(Integer)
4762 phani.kuma 95
    display_name = Field(String(50))
746 rajveer 96
    using_options(shortnames=True)
97
    using_table_options(mysql_engine="InnoDB")
1970 rajveer 98
 
3008 rajveer 99
class SimilarItems(Entity):
100
    item = ManyToOne('Item', primary_key=True)
101
    catalog_item_id = Field(Integer, primary_key=True, autoincrement=False)
102
    using_options(shortnames=True)
103
    using_table_options(mysql_engine="InnoDB")
104
 
3079 rajveer 105
class ProductNotification(Entity):
106
    item = ManyToOne('Item', primary_key=True)
107
    email = Field(String(100), primary_key=True, autoincrement=False)
108
    addedOn = Field(DateTime, primary_key=True, autoincrement=False) 
109
    using_options(shortnames=True)
110
    using_table_options(mysql_engine="InnoDB")
3557 rajveer 111
 
112
class Source(Entity):
113
    id = Field(Integer, primary_key=True, autoincrement=True)
114
    name = Field(String(50))
115
    identifier = Field(String(100))
116
    using_options(shortnames=True)
117
    using_table_options(mysql_engine="InnoDB")
6511 kshitij.so 118
 
3557 rajveer 119
class SourceItemPricing(Entity):
120
    source = ManyToOne('Source', primary_key=True)
121
    item = ManyToOne('Item', primary_key=True)
122
    mrp = Field(Float)
123
    sellingPrice = Field(Float)
124
    using_options(shortnames=True)
125
    using_table_options(mysql_engine="InnoDB")
746 rajveer 126
 
4649 phani.kuma 127
class AuthorizationLog(Entity):
128
    id = Field(Integer, primary_key=True, autoincrement = True)    
129
    timestamp = Field(DateTime, default=datetime.datetime.now())
130
    item = ManyToOne('Item')
131
    username = Field(String(30))
132
    reason = Field(Text)
133
    using_options(shortnames=True)
134
    using_table_options(mysql_engine="InnoDB")
135
 
5504 phani.kuma 136
class VoucherItemMapping(Entity):
5512 rajveer 137
    voucherType = Field(Integer, primary_key=True)
5504 phani.kuma 138
    item = ManyToOne('Item', primary_key=True)
139
    amount = Field(Integer, default=0, server_default="0")
140
    using_options(shortnames=True)
141
    using_table_options(mysql_engine="InnoDB")
142
 
6039 amit.gupta 143
class CategoryVatMaster(Entity):
7330 amit.gupta 144
    categoryId = Field(Integer, primary_key=True, autoincrement=False)
145
    stateId = Field(Integer, primary_key=True, autoincrement=False)
146
    minVal = Field(Integer, primary_key=True,  autoincrement=False)
147
    maxVal = Field(Integer, primary_key=True,  autoincrement=False)
6039 amit.gupta 148
    vatPercent = Field(Float)
149
    using_options(shortnames=True)
150
    using_table_options(mysql_engine="InnoDB")
151
 
6255 rajveer 152
class OOSTracker(Entity):
153
    itemId = Field(Integer, primary_key=True)
154
    using_options(shortnames=True)
155
    using_table_options(mysql_engine="InnoDB")
6532 amit.gupta 156
 
157
class EntityTag(Entity):
158
    tag = Field(String(100),primary_key=True)
159
    entityId = Field(Integer, primary_key=True, autoincrement=False)
160
    using_options(shortnames=True)
161
    using_table_options(mysql_engine="InnoDB")
6848 kshitij.so 162
 
163
class Banner(Entity):
164
    bannerName = Field(String(100),primary_key=True)
165
    imageName = Field(String(100))
166
    link = Field(String(400))
167
    priority = Field(Integer)
168
    isActive = Field(Boolean)
169
    hasMap = Field(Boolean)
170
    using_options(shortnames=True)
171
    using_table_options(mysql_engine="InnoDB")
172
 
173
class BannerMap(Entity):
174
    bannerName = Field(String(100))
175
    mapLink = Field(String(400))
176
    coordinates = Field(String(20))
177
    using_options(shortnames=True)
178
    using_table_options(mysql_engine="InnoDB")
6255 rajveer 179
 
6805 anupam.sin 180
class ItemInsurerMapping(Entity):
181
    id = Field(Integer, primary_key=True, autoincrement=True)
182
    itemId = Field(Integer)
183
    insurerId = Field(Integer)
184
    premiumType = Field(Integer)
185
    premiumAmount = Field(Float)
186
    using_options(shortnames=True)
187
    using_table_options(mysql_engine="InnoDB")
188
 
189
class Insurer(Entity):
190
    id = Field(Integer, primary_key=True, autoincrement=True)
191
    name = Field(String(255))
192
    address = Field(String(255))
6903 anupam.sin 193
    declaredAmount = Field(BigInteger)
194
    creditedAmount = Field(BigInteger)
6805 anupam.sin 195
    using_options(shortnames=True)
196
    using_table_options(mysql_engine="InnoDB")
7190 amar.kumar 197
 
198
class FreebieItem(Entity):
199
    itemId = Field(Integer, primary_key=True)
200
    freebieItemId = Field(Integer)
201
    using_options(shortnames=True)
202
    using_table_options(mysql_engine="InnoDB")
7256 rajveer 203
 
7272 amit.gupta 204
class BrandInfo(Entity):
205
    name = Field(String(255), primary_key=True)
206
    serviceCenterLocatorUrl = Field(String(255))
207
    using_options(shortnames=True)
208
    using_table_options(mysql_engine="InnoDB")
209
 
7256 rajveer 210
class StorePricing(Entity):
211
    item = ManyToOne('Item', primary_key=True)
212
    recommendedPrice = Field(Float)
213
    minPrice = Field(Float)
214
    maxPrice = Field(Float)
215
    minAdvancePrice = Field(Float)
7308 rajveer 216
    freebieItemId = Field(Integer)
7351 rajveer 217
    absoluteMinPrice = Field(Float)
7308 rajveer 218
    bestDealText = Field(String(100))
7256 rajveer 219
    using_options(shortnames=True)
7291 vikram.rag 220
    using_table_options(mysql_engine="InnoDB")    
221
 
7281 kshitij.so 222
class Amazonlisted(Entity):
7396 kshitij.so 223
    itemId = Field(Integer, primary_key=True, autoincrement=False)
7281 kshitij.so 224
    asin = Field(String(255))
225
    name = Field(String(255))
226
    brand = Field(String(255))
227
    model = Field(String(255))
228
    manufacturer_name = Field(String(255))
229
    part_number = Field(String(255))
230
    ean = Field(String(255))
231
    upc = Field(String(255))
232
    fbaPrice = Field(Float)
233
    sellingPrice = Field(Float)
234
    isFba = Field(Boolean)
235
    isNonFba = Field(Boolean)
236
    isInventoryOverride = Field(Boolean)
237
    color = Field(String(255))
238
    category = Field(String(255))
7367 kshitij.so 239
    handlingTime = Field(Integer)
240
    isCustomTime = Field(Boolean)
7516 vikram.rag 241
    category_code = Field(Integer, default=0, server_default="0")
7770 kshitij.so 242
    mfnPriceLastUpdatedOn = Field(DateTime)
243
    fbaPriceLastUpdatedOn = Field(DateTime)
244
    mfnPriceLastUpdatedOnSc = Field(DateTime)
245
    fbaPriceLastUpdatedOnSc = Field(DateTime)
8139 kshitij.so 246
    suppressMfnPriceUpdate = Field(Boolean)
8140 kshitij.so 247
    suppressFbaPriceUpdate = Field(Boolean)
7281 kshitij.so 248
    using_options(shortnames=True)
249
    using_table_options(mysql_engine="InnoDB")
250
 
7977 kshitij.so 251
class PageViewEvents(Entity):
252
    id = Field(Integer, primary_key=True, autoincrement=True)
8139 kshitij.so 253
    catalogId = Field(Integer,index=True)
254
    url = Field(String(255),index=True)
7977 kshitij.so 255
    sellingPrice = Field(Float)
256
    comingSoon = Field(Boolean)
257
    ip = Field(String(255))
258
    sessionId = Field(String(255))
8139 kshitij.so 259
    eventTimestamp = Field(DateTime,index=True)
7977 kshitij.so 260
    using_options(shortnames=True)
261
    using_table_options(mysql_engine="InnoDB")
262
 
263
class CartEvents(Entity):
264
    id = Field(Integer, primary_key=True, autoincrement=True)
8139 kshitij.so 265
    catalogId = Field(Integer,index=True)
266
    itemId = Field(Integer,index=True)
7977 kshitij.so 267
    sellingPrice = Field(Float)
268
    inStock = Field(Boolean)
269
    comingSoon = Field(Boolean)
270
    ip = Field(String(255))
271
    sessionId = Field(String(255))
8139 kshitij.so 272
    eventTimestamp = Field(DateTime,index=True)
7977 kshitij.so 273
    using_options(shortnames=True)
274
    using_table_options(mysql_engine="InnoDB")
275
 
276
 
277
 
278
 
3187 rajveer 279
def initialize(dbname='catalog', db_hostname="localhost"):
746 rajveer 280
    #metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
1122 chandransh 281
    #metadata.bind = 'mysql://root:shop2020@localhost/catalog'
6532 amit.gupta 282
    cengine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
283
    metadata.bind = cengine
94 ashish 284
    metadata.bind.echo = True
285
    setup_all(True)
115 ashish 286
 
287
if __name__=="__main__":
288
    initialize()