Subversion Repositories SmartDukaan

Rev

Rev 9841 | Rev 9909 | 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")
9841 rajveer 64
    holdOverride = Field(Boolean)
746 rajveer 65
    using_options(shortnames=True)
66
    using_table_options(mysql_engine="InnoDB")
103 ashish 67
 
94 ashish 68
    def __repr__(self):
122 ashish 69
        return "<Item>%d</item>" % (self.id)
1308 chandransh 70
 
7330 amit.gupta 71
class ItemVatMaster(Entity):
72
    itemId = Field(Integer, primary_key=True,  autoincrement=False)
73
    stateId = Field(Integer, primary_key=True,  autoincrement=False)
74
    vatPercentage = Field(Float)
75
    using_options(shortnames=True)
76
    using_table_options(mysql_engine="InnoDB")
77
 
78
 
103 ashish 79
class ItemChangeLog(Entity):
122 ashish 80
    id = Field(Integer, primary_key=True, autoincrement=True)
103 ashish 81
    old_status = Field(Integer)
82
    new_status = Field(Integer)
1308 chandransh 83
    timestamp = Field(DateTime)
103 ashish 84
    item = ManyToOne("Item")
746 rajveer 85
    using_options(shortnames=True)
86
    using_table_options(mysql_engine="InnoDB")
94 ashish 87
 
103 ashish 88
    def __repr__(self):
89
        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 90
 
635 rajveer 91
class Category(Entity):
1970 rajveer 92
    id = Field(Integer, primary_key=True, autoincrement=False)
93
    label = Field(String(50))
94
    description = Field(String(200))
95
    parent_category_id = Field(Integer)
4762 phani.kuma 96
    display_name = Field(String(50))
746 rajveer 97
    using_options(shortnames=True)
98
    using_table_options(mysql_engine="InnoDB")
1970 rajveer 99
 
3008 rajveer 100
class SimilarItems(Entity):
101
    item = ManyToOne('Item', primary_key=True)
102
    catalog_item_id = Field(Integer, primary_key=True, autoincrement=False)
103
    using_options(shortnames=True)
104
    using_table_options(mysql_engine="InnoDB")
105
 
3079 rajveer 106
class ProductNotification(Entity):
107
    item = ManyToOne('Item', primary_key=True)
108
    email = Field(String(100), primary_key=True, autoincrement=False)
109
    addedOn = Field(DateTime, primary_key=True, autoincrement=False) 
110
    using_options(shortnames=True)
111
    using_table_options(mysql_engine="InnoDB")
3557 rajveer 112
 
113
class Source(Entity):
114
    id = Field(Integer, primary_key=True, autoincrement=True)
115
    name = Field(String(50))
116
    identifier = Field(String(100))
117
    using_options(shortnames=True)
118
    using_table_options(mysql_engine="InnoDB")
6511 kshitij.so 119
 
3557 rajveer 120
class SourceItemPricing(Entity):
121
    source = ManyToOne('Source', primary_key=True)
122
    item = ManyToOne('Item', primary_key=True)
123
    mrp = Field(Float)
124
    sellingPrice = Field(Float)
125
    using_options(shortnames=True)
126
    using_table_options(mysql_engine="InnoDB")
746 rajveer 127
 
4649 phani.kuma 128
class AuthorizationLog(Entity):
129
    id = Field(Integer, primary_key=True, autoincrement = True)    
130
    timestamp = Field(DateTime, default=datetime.datetime.now())
131
    item = ManyToOne('Item')
132
    username = Field(String(30))
133
    reason = Field(Text)
134
    using_options(shortnames=True)
135
    using_table_options(mysql_engine="InnoDB")
136
 
5504 phani.kuma 137
class VoucherItemMapping(Entity):
5512 rajveer 138
    voucherType = Field(Integer, primary_key=True)
5504 phani.kuma 139
    item = ManyToOne('Item', primary_key=True)
140
    amount = Field(Integer, default=0, server_default="0")
141
    using_options(shortnames=True)
142
    using_table_options(mysql_engine="InnoDB")
143
 
6039 amit.gupta 144
class CategoryVatMaster(Entity):
7330 amit.gupta 145
    categoryId = Field(Integer, primary_key=True, autoincrement=False)
146
    stateId = Field(Integer, primary_key=True, autoincrement=False)
147
    minVal = Field(Integer, primary_key=True,  autoincrement=False)
148
    maxVal = Field(Integer, primary_key=True,  autoincrement=False)
6039 amit.gupta 149
    vatPercent = Field(Float)
150
    using_options(shortnames=True)
151
    using_table_options(mysql_engine="InnoDB")
152
 
6255 rajveer 153
class OOSTracker(Entity):
154
    itemId = Field(Integer, primary_key=True)
155
    using_options(shortnames=True)
156
    using_table_options(mysql_engine="InnoDB")
6532 amit.gupta 157
 
158
class EntityTag(Entity):
159
    tag = Field(String(100),primary_key=True)
160
    entityId = Field(Integer, primary_key=True, autoincrement=False)
161
    using_options(shortnames=True)
162
    using_table_options(mysql_engine="InnoDB")
6848 kshitij.so 163
 
164
class Banner(Entity):
165
    bannerName = Field(String(100),primary_key=True)
166
    imageName = Field(String(100))
167
    link = Field(String(400))
168
    priority = Field(Integer)
169
    hasMap = Field(Boolean)
9156 amit.gupta 170
    bannerType = Field(Integer,primary_key=True, autoincrement=False)
6848 kshitij.so 171
    using_options(shortnames=True)
172
    using_table_options(mysql_engine="InnoDB")
173
 
174
class BannerMap(Entity):
175
    bannerName = Field(String(100))
176
    mapLink = Field(String(400))
177
    coordinates = Field(String(20))
9155 kshitij.so 178
    bannerType = Field(Integer)
6848 kshitij.so 179
    using_options(shortnames=True)
180
    using_table_options(mysql_engine="InnoDB")
8579 kshitij.so 181
 
182
class BannerUriMapping(Entity):
183
    bannerName = Field(String(100))
184
    uri = Field(String(100))
185
    isActive = Field(Boolean)
9155 kshitij.so 186
    bannerType = Field(Integer)
8579 kshitij.so 187
    using_options(shortnames=True)
188
    using_table_options(mysql_engine="InnoDB")
189
 
190
class Campaign(Entity):
191
    id = Field(Integer,primary_key=True)
192
    campaignName = Field(String(255))
193
    imageName = Field(String(255))
194
    using_options(shortnames=True)
195
    using_table_options(mysql_engine="InnoDB")
6255 rajveer 196
 
6805 anupam.sin 197
class ItemInsurerMapping(Entity):
198
    id = Field(Integer, primary_key=True, autoincrement=True)
199
    itemId = Field(Integer)
200
    insurerId = Field(Integer)
201
    premiumType = Field(Integer)
202
    premiumAmount = Field(Float)
9299 kshitij.so 203
    insurerType = Field(Integer)
6805 anupam.sin 204
    using_options(shortnames=True)
205
    using_table_options(mysql_engine="InnoDB")
206
 
207
class Insurer(Entity):
208
    id = Field(Integer, primary_key=True, autoincrement=True)
209
    name = Field(String(255))
210
    address = Field(String(255))
6903 anupam.sin 211
    declaredAmount = Field(BigInteger)
212
    creditedAmount = Field(BigInteger)
9299 kshitij.so 213
    insurerType = Field(Integer)
6805 anupam.sin 214
    using_options(shortnames=True)
215
    using_table_options(mysql_engine="InnoDB")
7190 amar.kumar 216
 
217
class FreebieItem(Entity):
218
    itemId = Field(Integer, primary_key=True)
219
    freebieItemId = Field(Integer)
220
    using_options(shortnames=True)
221
    using_table_options(mysql_engine="InnoDB")
7256 rajveer 222
 
7272 amit.gupta 223
class BrandInfo(Entity):
224
    name = Field(String(255), primary_key=True)
225
    serviceCenterLocatorUrl = Field(String(255))
226
    using_options(shortnames=True)
227
    using_table_options(mysql_engine="InnoDB")
228
 
7256 rajveer 229
class StorePricing(Entity):
230
    item = ManyToOne('Item', primary_key=True)
231
    recommendedPrice = Field(Float)
232
    minPrice = Field(Float)
233
    maxPrice = Field(Float)
234
    minAdvancePrice = Field(Float)
7308 rajveer 235
    freebieItemId = Field(Integer)
7351 rajveer 236
    absoluteMinPrice = Field(Float)
7308 rajveer 237
    bestDealText = Field(String(100))
7256 rajveer 238
    using_options(shortnames=True)
7291 vikram.rag 239
    using_table_options(mysql_engine="InnoDB")    
240
 
7281 kshitij.so 241
class Amazonlisted(Entity):
7396 kshitij.so 242
    itemId = Field(Integer, primary_key=True, autoincrement=False)
7281 kshitij.so 243
    asin = Field(String(255))
244
    name = Field(String(255))
245
    brand = Field(String(255))
246
    model = Field(String(255))
247
    manufacturer_name = Field(String(255))
248
    part_number = Field(String(255))
249
    ean = Field(String(255))
250
    upc = Field(String(255))
251
    fbaPrice = Field(Float)
252
    sellingPrice = Field(Float)
253
    isFba = Field(Boolean)
254
    isNonFba = Field(Boolean)
255
    isInventoryOverride = Field(Boolean)
256
    color = Field(String(255))
257
    category = Field(String(255))
7367 kshitij.so 258
    handlingTime = Field(Integer)
259
    isCustomTime = Field(Boolean)
7516 vikram.rag 260
    category_code = Field(Integer, default=0, server_default="0")
7770 kshitij.so 261
    mfnPriceLastUpdatedOn = Field(DateTime)
262
    fbaPriceLastUpdatedOn = Field(DateTime)
263
    mfnPriceLastUpdatedOnSc = Field(DateTime)
264
    fbaPriceLastUpdatedOnSc = Field(DateTime)
8139 kshitij.so 265
    suppressMfnPriceUpdate = Field(Boolean)
8140 kshitij.so 266
    suppressFbaPriceUpdate = Field(Boolean)
8619 kshitij.so 267
    taxCode = Field(String(255))
7281 kshitij.so 268
    using_options(shortnames=True)
269
    using_table_options(mysql_engine="InnoDB")
270
 
7977 kshitij.so 271
class PageViewEvents(Entity):
272
    id = Field(Integer, primary_key=True, autoincrement=True)
8139 kshitij.so 273
    catalogId = Field(Integer,index=True)
274
    url = Field(String(255),index=True)
7977 kshitij.so 275
    sellingPrice = Field(Float)
276
    comingSoon = Field(Boolean)
277
    ip = Field(String(255))
278
    sessionId = Field(String(255))
8139 kshitij.so 279
    eventTimestamp = Field(DateTime,index=True)
7977 kshitij.so 280
    using_options(shortnames=True)
281
    using_table_options(mysql_engine="InnoDB")
282
 
283
class CartEvents(Entity):
284
    id = Field(Integer, primary_key=True, autoincrement=True)
8139 kshitij.so 285
    catalogId = Field(Integer,index=True)
286
    itemId = Field(Integer,index=True)
7977 kshitij.so 287
    sellingPrice = Field(Float)
288
    inStock = Field(Boolean)
289
    comingSoon = Field(Boolean)
290
    ip = Field(String(255))
291
    sessionId = Field(String(255))
8139 kshitij.so 292
    eventTimestamp = Field(DateTime,index=True)
7977 kshitij.so 293
    using_options(shortnames=True)
294
    using_table_options(mysql_engine="InnoDB")
295
 
8182 amar.kumar 296
class EbayItem(Entity):
297
    ebayListingId = Field(String(32), primary_key=True)
298
    itemId = Field(Integer, primary_key=True, autoincrement = False)
299
    listingName = Field(String(255))
300
    listingPrice = Field(Float)
301
    listingExpiryDate = Field(DateTime)
302
    subsidy = Field(Float)
303
    defaultWarehouseId = Field(Integer)
304
    using_options(shortnames=True)
305
    using_table_options(mysql_engine="InnoDB")
8739 vikram.rag 306
 
307
class SnapdealItem(Entity):
308
    item_id = Field(Integer, primary_key=True, autoincrement = False)
309
    exceptionPrice = Field(Float)
310
    warehouseId = Field(Integer)
9242 kshitij.so 311
    transferPrice = Field(Float)
312
    sellingPrice = Field(Float)
313
    courierCost =  Field(Float)
314
    commission  =  Field(Float)
315
    serviceTax  =  Field(Float)
316
    updatedOn = Field(DateTime)
9404 vikram.rag 317
    maxNlc = Field(Float)
9478 kshitij.so 318
    skuAtSnapdeal = Field(String(255))
9242 kshitij.so 319
    isListedOnSnapdeal = Field(Boolean)
320
    suppressPriceFeed = Field(Boolean)
321
    suppressInventoryFeed = Field(Boolean)
9568 kshitij.so 322
    supc = Field(String(255))
9724 kshitij.so 323
    shippingTime = Field(Integer)
9779 kshitij.so 324
    priceUpdatedBy = Field(String(255))
8739 vikram.rag 325
    using_options(shortnames=True)
326
    using_table_options(mysql_engine="InnoDB")
9242 kshitij.so 327
 
328
class SnapdealItemUpdateHistory(Entity):
329
    id  = Field(Integer, primary_key=True, autoincrement = True)
330
    item_id = Field(Integer)
331
    isListedOnSnapdeal = Field(Boolean)
332
    exceptionPrice = Field(Float)
333
    warehouseId = Field(Integer)
334
    transferPrice = Field(Float)
335
    sellingPrice = Field(Float)
336
    courierCost =  Field(Float)
337
    commission  =  Field(Float)
338
    serviceTax  =  Field(Float)
339
    suppressPriceFeed = Field(Boolean)
340
    suppressInventoryFeed = Field(Boolean)
9478 kshitij.so 341
    maxNlc = Field(Float)
342
    skuAtSnapdeal = Field(String(255))
9242 kshitij.so 343
    updatedOn = Field(DateTime)
9568 kshitij.so 344
    supc = Field(String(255))
9779 kshitij.so 345
    priceUpdatedBy = Field(String(255))
9242 kshitij.so 346
    using_options(shortnames=True)
347
    using_table_options(mysql_engine="InnoDB")
9724 kshitij.so 348
 
349
class MarketplaceItems(Entity):
350
    itemId = Field(Integer,primary_key=True, autoincrement = False)
351
    source = Field(Integer,primary_key=True, autoincrement = False)
352
    emiFee = Field(Float)
353
    courierCost = Field(Float)
354
    closingFee = Field(Float)
355
    returnProvision = Field(Float)
356
    commission = Field(Float)
357
    vat = Field(Float)
358
    packagingCost = Field(Float)
359
    otherCost = Field(Float)
360
    serviceTax = Field(Float)
361
    autoIncrement = Field(Boolean)
362
    autoDecrement = Field(Boolean)
363
    manualFavourite = Field(Boolean)
364
    autoFavourite = Field(Boolean)
365
    currentSp = Field(Float)
366
    currentTp = Field(Float)
367
    minimumPossibleSp = Field(Float)
368
    minimumPossibleTp = Field(Float)
369
    lastCheckedTimestamp = Field(DateTime)
370
    using_options(shortnames=True)
371
    using_table_options(mysql_engine="InnoDB")
7977 kshitij.so 372
 
9621 manish.sha 373
class ProductFeedSubmit(Entity):
374
    catalogItemId = Field(Integer, primary_key=True)
375
    stockLinkedFeed = Field(Boolean)
376
    using_options(shortnames=True)
377
    using_table_options(mysql_engine="InnoDB")
9776 vikram.rag 378
 
379
class MarketPlaceItemPrice(Entity):    
380
    item_id = Field(Integer, primary_key=True, autoincrement=False)
381
    source = Field(Integer, primary_key=True, autoincrement=False)
382
    sellingPrice = Field(Float)
383
    lastUpdatedOn = Field(DateTime)
384
    lastUpdatedOnMarketplace = Field(DateTime,default = datetime.datetime.strptime('01-01-1970 15:00:00', '%d-%m-%Y %H:%M:%S'),server_default = '1970-01-01')
385
    suppressPriceFeed = Field(Boolean)
386
    isListedOnSource =  Field(Boolean)
387
    using_options(shortnames=True)
388
    using_table_options(mysql_engine="InnoDB")
9242 kshitij.so 389
 
9779 kshitij.so 390
class SourcePercentageMaster(Entity):
391
    source = Field(Integer, primary_key=True, autoincrement=False)
392
    emiFee = Field(Float)
393
    closingFee = Field(Float)
394
    returnProvision = Field(Float)
395
    commission = Field(Float)
9884 kshitij.so 396
    competitorCommissionAccessory = Field(Float)
397
    competitorCommissionOther = Field(Float)
9779 kshitij.so 398
    serviceTax = Field(Float)
399
    using_options(shortnames=True)
400
    using_table_options(mysql_engine="InnoDB")
401
 
402
class SourceItemPercentage(Entity):
403
    item_id = Field(Integer, primary_key=True, autoincrement=False)
404
    source = Field(Integer, primary_key=True, autoincrement=False)
405
    emiFee = Field(Float)
406
    closingFee = Field(Float)
407
    returnProvision = Field(Float)
408
    commission = Field(Float)
9884 kshitij.so 409
    competitorCommissionAccessory = Field(Float)
410
    competitorCommissionOther = Field(Float)
9779 kshitij.so 411
    serviceTax = Field(Float)
412
    using_options(shortnames=True)
413
    using_table_options(mysql_engine="InnoDB")
414
 
9884 kshitij.so 415
class MarketPlaceHistory(Entity):
416
    item_id = Field(Integer, primary_key=True, autoincrement=False)
417
    source = Field(Integer, primary_key=True, autoincrement=False)
418
    lowestTp = Field(Float)
419
    lowestPossibleTp = Field(Float)
420
    lowestPossibleSp = Field(Float)
421
    ourInventory = Field(Integer)
422
    otherInventory = Field(Integer)
423
    secondLowestInventory = Field(Integer)
424
    ourRank = Field(Integer)
425
    competitionBasis = Field(Integer)
426
    competitiveCategory = Field(Integer)
427
    risky = Field(Boolean)
428
    lowestOfferPrice = Field(Float)
429
    lowestSellingPrice = Field(Float)
430
    lowestSellerName = Field(String(255))
431
    lowestSellerCode = Field(String(255))
432
    ourOfferPrice = Field(Float)
433
    ourSellingPrice = Field(Float)
434
    ourTp = Field(Float)
435
    ourNlc = Field(Float)
436
    proposedSellingPrice = Field(Float)
437
    proposedTp = Field(Float)
438
    targetNlc = Field(Float)
439
    salesPotential = Field(Integer)
440
    secondLowestSellerName = Field(String(255))
441
    secondLowestSellerCode = Field(String(255))
442
    secondLowestSellingPrice = Field(Float)
443
    secondLowestOfferPrice = Field(Float)
444
    secondLowestTp = Field(Float)
445
    marginIncreasedPotential = Field(Float)
446
    margin = Field(Float)
447
    competitorEnoughStock = Field(Boolean)
448
    ourEnoughStock = Field(Boolean)
449
    totalSeller = Field(Integer)
450
    salesPotential = Field(Integer)
451
    avgSales = Field(Float)
452
    decision = Field(Integer)
453
    reason = Field(Integer)
454
    timestamp =Field(DateTime, primary_key=True, autoincrement=False)
455
    using_options(shortnames=True)
456
    using_table_options(mysql_engine="InnoDB")
457
 
3187 rajveer 458
def initialize(dbname='catalog', db_hostname="localhost"):
746 rajveer 459
    #metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
1122 chandransh 460
    #metadata.bind = 'mysql://root:shop2020@localhost/catalog'
6532 amit.gupta 461
    cengine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
462
    metadata.bind = cengine
94 ashish 463
    metadata.bind.echo = True
464
    setup_all(True)
115 ashish 465
 
466
if __name__=="__main__":
9242 kshitij.so 467
    initialize()