Subversion Repositories SmartDukaan

Rev

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