Subversion Repositories SmartDukaan

Rev

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