Subversion Repositories SmartDukaan

Rev

Rev 9156 | Rev 9299 | 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
    hasMap = Field(Boolean)
9156 amit.gupta 169
    bannerType = Field(Integer,primary_key=True, autoincrement=False)
6848 kshitij.so 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))
9155 kshitij.so 177
    bannerType = Field(Integer)
6848 kshitij.so 178
    using_options(shortnames=True)
179
    using_table_options(mysql_engine="InnoDB")
8579 kshitij.so 180
 
181
class BannerUriMapping(Entity):
182
    bannerName = Field(String(100))
183
    uri = Field(String(100))
184
    isActive = Field(Boolean)
9155 kshitij.so 185
    bannerType = Field(Integer)
8579 kshitij.so 186
    using_options(shortnames=True)
187
    using_table_options(mysql_engine="InnoDB")
188
 
189
class Campaign(Entity):
190
    id = Field(Integer,primary_key=True)
191
    campaignName = Field(String(255))
192
    imageName = Field(String(255))
193
    using_options(shortnames=True)
194
    using_table_options(mysql_engine="InnoDB")
6255 rajveer 195
 
6805 anupam.sin 196
class ItemInsurerMapping(Entity):
197
    id = Field(Integer, primary_key=True, autoincrement=True)
198
    itemId = Field(Integer)
199
    insurerId = Field(Integer)
200
    premiumType = Field(Integer)
201
    premiumAmount = Field(Float)
202
    using_options(shortnames=True)
203
    using_table_options(mysql_engine="InnoDB")
204
 
205
class Insurer(Entity):
206
    id = Field(Integer, primary_key=True, autoincrement=True)
207
    name = Field(String(255))
208
    address = Field(String(255))
6903 anupam.sin 209
    declaredAmount = Field(BigInteger)
210
    creditedAmount = Field(BigInteger)
6805 anupam.sin 211
    using_options(shortnames=True)
212
    using_table_options(mysql_engine="InnoDB")
7190 amar.kumar 213
 
214
class FreebieItem(Entity):
215
    itemId = Field(Integer, primary_key=True)
216
    freebieItemId = Field(Integer)
217
    using_options(shortnames=True)
218
    using_table_options(mysql_engine="InnoDB")
7256 rajveer 219
 
7272 amit.gupta 220
class BrandInfo(Entity):
221
    name = Field(String(255), primary_key=True)
222
    serviceCenterLocatorUrl = Field(String(255))
223
    using_options(shortnames=True)
224
    using_table_options(mysql_engine="InnoDB")
225
 
7256 rajveer 226
class StorePricing(Entity):
227
    item = ManyToOne('Item', primary_key=True)
228
    recommendedPrice = Field(Float)
229
    minPrice = Field(Float)
230
    maxPrice = Field(Float)
231
    minAdvancePrice = Field(Float)
7308 rajveer 232
    freebieItemId = Field(Integer)
7351 rajveer 233
    absoluteMinPrice = Field(Float)
7308 rajveer 234
    bestDealText = Field(String(100))
7256 rajveer 235
    using_options(shortnames=True)
7291 vikram.rag 236
    using_table_options(mysql_engine="InnoDB")    
237
 
7281 kshitij.so 238
class Amazonlisted(Entity):
7396 kshitij.so 239
    itemId = Field(Integer, primary_key=True, autoincrement=False)
7281 kshitij.so 240
    asin = Field(String(255))
241
    name = Field(String(255))
242
    brand = Field(String(255))
243
    model = Field(String(255))
244
    manufacturer_name = Field(String(255))
245
    part_number = Field(String(255))
246
    ean = Field(String(255))
247
    upc = Field(String(255))
248
    fbaPrice = Field(Float)
249
    sellingPrice = Field(Float)
250
    isFba = Field(Boolean)
251
    isNonFba = Field(Boolean)
252
    isInventoryOverride = Field(Boolean)
253
    color = Field(String(255))
254
    category = Field(String(255))
7367 kshitij.so 255
    handlingTime = Field(Integer)
256
    isCustomTime = Field(Boolean)
7516 vikram.rag 257
    category_code = Field(Integer, default=0, server_default="0")
7770 kshitij.so 258
    mfnPriceLastUpdatedOn = Field(DateTime)
259
    fbaPriceLastUpdatedOn = Field(DateTime)
260
    mfnPriceLastUpdatedOnSc = Field(DateTime)
261
    fbaPriceLastUpdatedOnSc = Field(DateTime)
8139 kshitij.so 262
    suppressMfnPriceUpdate = Field(Boolean)
8140 kshitij.so 263
    suppressFbaPriceUpdate = Field(Boolean)
8619 kshitij.so 264
    taxCode = Field(String(255))
7281 kshitij.so 265
    using_options(shortnames=True)
266
    using_table_options(mysql_engine="InnoDB")
267
 
7977 kshitij.so 268
class PageViewEvents(Entity):
269
    id = Field(Integer, primary_key=True, autoincrement=True)
8139 kshitij.so 270
    catalogId = Field(Integer,index=True)
271
    url = Field(String(255),index=True)
7977 kshitij.so 272
    sellingPrice = Field(Float)
273
    comingSoon = Field(Boolean)
274
    ip = Field(String(255))
275
    sessionId = Field(String(255))
8139 kshitij.so 276
    eventTimestamp = Field(DateTime,index=True)
7977 kshitij.so 277
    using_options(shortnames=True)
278
    using_table_options(mysql_engine="InnoDB")
279
 
280
class CartEvents(Entity):
281
    id = Field(Integer, primary_key=True, autoincrement=True)
8139 kshitij.so 282
    catalogId = Field(Integer,index=True)
283
    itemId = Field(Integer,index=True)
7977 kshitij.so 284
    sellingPrice = Field(Float)
285
    inStock = Field(Boolean)
286
    comingSoon = Field(Boolean)
287
    ip = Field(String(255))
288
    sessionId = Field(String(255))
8139 kshitij.so 289
    eventTimestamp = Field(DateTime,index=True)
7977 kshitij.so 290
    using_options(shortnames=True)
291
    using_table_options(mysql_engine="InnoDB")
292
 
8182 amar.kumar 293
class EbayItem(Entity):
294
    ebayListingId = Field(String(32), primary_key=True)
295
    itemId = Field(Integer, primary_key=True, autoincrement = False)
296
    listingName = Field(String(255))
297
    listingPrice = Field(Float)
298
    listingExpiryDate = Field(DateTime)
299
    subsidy = Field(Float)
300
    defaultWarehouseId = Field(Integer)
301
    using_options(shortnames=True)
302
    using_table_options(mysql_engine="InnoDB")
8739 vikram.rag 303
 
304
class SnapdealItem(Entity):
305
    item_id = Field(Integer, primary_key=True, autoincrement = False)
306
    exceptionPrice = Field(Float)
307
    warehouseId = Field(Integer)
9242 kshitij.so 308
    transferPrice = Field(Float)
309
    sellingPrice = Field(Float)
310
    courierCost =  Field(Float)
311
    commission  =  Field(Float)
312
    serviceTax  =  Field(Float)
313
    updatedOn = Field(DateTime)
314
    isListedOnSnapdeal = Field(Boolean)
315
    suppressPriceFeed = Field(Boolean)
316
    suppressInventoryFeed = Field(Boolean)
8739 vikram.rag 317
    using_options(shortnames=True)
318
    using_table_options(mysql_engine="InnoDB")
9242 kshitij.so 319
 
320
class SnapdealItemUpdateHistory(Entity):
321
    id  = Field(Integer, primary_key=True, autoincrement = True)
322
    item_id = Field(Integer)
323
    isListedOnSnapdeal = Field(Boolean)
324
    exceptionPrice = Field(Float)
325
    warehouseId = Field(Integer)
326
    transferPrice = Field(Float)
327
    sellingPrice = Field(Float)
328
    courierCost =  Field(Float)
329
    commission  =  Field(Float)
330
    serviceTax  =  Field(Float)
331
    suppressPriceFeed = Field(Boolean)
332
    suppressInventoryFeed = Field(Boolean)
333
    updatedOn = Field(DateTime)
334
    using_options(shortnames=True)
335
    using_table_options(mysql_engine="InnoDB")
7977 kshitij.so 336
 
9242 kshitij.so 337
 
3187 rajveer 338
def initialize(dbname='catalog', db_hostname="localhost"):
746 rajveer 339
    #metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
1122 chandransh 340
    #metadata.bind = 'mysql://root:shop2020@localhost/catalog'
6532 amit.gupta 341
    cengine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
342
    metadata.bind = cengine
94 ashish 343
    metadata.bind.echo = True
344
    setup_all(True)
115 ashish 345
 
346
if __name__=="__main__":
9242 kshitij.so 347
    initialize()