Subversion Repositories SmartDukaan

Rev

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