Subversion Repositories SmartDukaan

Rev

Rev 7291 | Rev 7330 | 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)
6039 amit.gupta 59
    vatPercentage = Field(Float)
6241 amit.gupta 60
    showSellingPrice = Field(Boolean)
6805 anupam.sin 61
    preferredInsurer = Field(Integer)
7291 vikram.rag 62
    asin = Field(String(20))
63
    holdInventory = Field(Integer, default=0, server_default="0")
64
    defaultInventory = Field(Integer, default=0, server_default="0")
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
 
103 ashish 71
class ItemChangeLog(Entity):
122 ashish 72
    id = Field(Integer, primary_key=True, autoincrement=True)
103 ashish 73
    old_status = Field(Integer)
74
    new_status = Field(Integer)
1308 chandransh 75
    timestamp = Field(DateTime)
103 ashish 76
    item = ManyToOne("Item")
746 rajveer 77
    using_options(shortnames=True)
78
    using_table_options(mysql_engine="InnoDB")
94 ashish 79
 
103 ashish 80
    def __repr__(self):
81
        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 82
 
635 rajveer 83
class Category(Entity):
1970 rajveer 84
    id = Field(Integer, primary_key=True, autoincrement=False)
85
    label = Field(String(50))
86
    description = Field(String(200))
87
    parent_category_id = Field(Integer)
4762 phani.kuma 88
    display_name = Field(String(50))
746 rajveer 89
    using_options(shortnames=True)
90
    using_table_options(mysql_engine="InnoDB")
1970 rajveer 91
 
3008 rajveer 92
class SimilarItems(Entity):
93
    item = ManyToOne('Item', primary_key=True)
94
    catalog_item_id = Field(Integer, primary_key=True, autoincrement=False)
95
    using_options(shortnames=True)
96
    using_table_options(mysql_engine="InnoDB")
97
 
3079 rajveer 98
class ProductNotification(Entity):
99
    item = ManyToOne('Item', primary_key=True)
100
    email = Field(String(100), primary_key=True, autoincrement=False)
101
    addedOn = Field(DateTime, primary_key=True, autoincrement=False) 
102
    using_options(shortnames=True)
103
    using_table_options(mysql_engine="InnoDB")
3557 rajveer 104
 
105
class Source(Entity):
106
    id = Field(Integer, primary_key=True, autoincrement=True)
107
    name = Field(String(50))
108
    identifier = Field(String(100))
109
    using_options(shortnames=True)
110
    using_table_options(mysql_engine="InnoDB")
6511 kshitij.so 111
 
3557 rajveer 112
class SourceItemPricing(Entity):
113
    source = ManyToOne('Source', primary_key=True)
114
    item = ManyToOne('Item', primary_key=True)
115
    mrp = Field(Float)
116
    sellingPrice = Field(Float)
117
    using_options(shortnames=True)
118
    using_table_options(mysql_engine="InnoDB")
746 rajveer 119
 
4649 phani.kuma 120
class AuthorizationLog(Entity):
121
    id = Field(Integer, primary_key=True, autoincrement = True)    
122
    timestamp = Field(DateTime, default=datetime.datetime.now())
123
    item = ManyToOne('Item')
124
    username = Field(String(30))
125
    reason = Field(Text)
126
    using_options(shortnames=True)
127
    using_table_options(mysql_engine="InnoDB")
128
 
5504 phani.kuma 129
class VoucherItemMapping(Entity):
5512 rajveer 130
    voucherType = Field(Integer, primary_key=True)
5504 phani.kuma 131
    item = ManyToOne('Item', primary_key=True)
132
    amount = Field(Integer, default=0, server_default="0")
133
    using_options(shortnames=True)
134
    using_table_options(mysql_engine="InnoDB")
135
 
6039 amit.gupta 136
class CategoryVatMaster(Entity):
137
    categoryId = Field(Integer, primary_key=True)
138
    minVal = Field(Integer, primary_key=True)
139
    maxVal = Field(Integer, primary_key=True)
140
    vatPercent = Field(Float)
141
    using_options(shortnames=True)
142
    using_table_options(mysql_engine="InnoDB")
143
 
6255 rajveer 144
class OOSTracker(Entity):
145
    itemId = Field(Integer, primary_key=True)
146
    using_options(shortnames=True)
147
    using_table_options(mysql_engine="InnoDB")
6532 amit.gupta 148
 
149
class EntityTag(Entity):
150
    tag = Field(String(100),primary_key=True)
151
    entityId = Field(Integer, primary_key=True, autoincrement=False)
152
    using_options(shortnames=True)
153
    using_table_options(mysql_engine="InnoDB")
6848 kshitij.so 154
 
155
class Banner(Entity):
156
    bannerName = Field(String(100),primary_key=True)
157
    imageName = Field(String(100))
158
    link = Field(String(400))
159
    priority = Field(Integer)
160
    isActive = Field(Boolean)
161
    hasMap = Field(Boolean)
162
    using_options(shortnames=True)
163
    using_table_options(mysql_engine="InnoDB")
164
 
165
class BannerMap(Entity):
166
    bannerName = Field(String(100))
167
    mapLink = Field(String(400))
168
    coordinates = Field(String(20))
169
    using_options(shortnames=True)
170
    using_table_options(mysql_engine="InnoDB")
6255 rajveer 171
 
6805 anupam.sin 172
class ItemInsurerMapping(Entity):
173
    id = Field(Integer, primary_key=True, autoincrement=True)
174
    itemId = Field(Integer)
175
    insurerId = Field(Integer)
176
    premiumType = Field(Integer)
177
    premiumAmount = Field(Float)
178
    using_options(shortnames=True)
179
    using_table_options(mysql_engine="InnoDB")
180
 
181
class Insurer(Entity):
182
    id = Field(Integer, primary_key=True, autoincrement=True)
183
    name = Field(String(255))
184
    address = Field(String(255))
6903 anupam.sin 185
    declaredAmount = Field(BigInteger)
186
    creditedAmount = Field(BigInteger)
6805 anupam.sin 187
    using_options(shortnames=True)
188
    using_table_options(mysql_engine="InnoDB")
7190 amar.kumar 189
 
190
class FreebieItem(Entity):
191
    itemId = Field(Integer, primary_key=True)
192
    freebieItemId = Field(Integer)
193
    using_options(shortnames=True)
194
    using_table_options(mysql_engine="InnoDB")
7256 rajveer 195
 
7272 amit.gupta 196
class BrandInfo(Entity):
197
    name = Field(String(255), primary_key=True)
198
    serviceCenterLocatorUrl = Field(String(255))
199
    using_options(shortnames=True)
200
    using_table_options(mysql_engine="InnoDB")
201
 
7256 rajveer 202
class StorePricing(Entity):
203
    item = ManyToOne('Item', primary_key=True)
204
    recommendedPrice = Field(Float)
205
    minPrice = Field(Float)
206
    maxPrice = Field(Float)
207
    minAdvancePrice = Field(Float)
7308 rajveer 208
    freebieItemId = Field(Integer)
209
    bestDealText = Field(String(100))
7256 rajveer 210
    using_options(shortnames=True)
7291 vikram.rag 211
    using_table_options(mysql_engine="InnoDB")    
212
 
7281 kshitij.so 213
class Amazonlisted(Entity):
214
    itemId = Field(Integer, primary_key=True, autoincrement=True)
215
    asin = Field(String(255))
216
    name = Field(String(255))
217
    brand = Field(String(255))
218
    model = Field(String(255))
219
    manufacturer_name = Field(String(255))
220
    part_number = Field(String(255))
221
    ean = Field(String(255))
222
    upc = Field(String(255))
223
    fbaPrice = Field(Float)
224
    sellingPrice = Field(Float)
225
    isFba = Field(Boolean)
226
    isNonFba = Field(Boolean)
227
    isInventoryOverride = Field(Boolean)
228
    color = Field(String(255))
229
    category = Field(String(255))
230
    using_options(shortnames=True)
231
    using_table_options(mysql_engine="InnoDB")
232
 
3187 rajveer 233
def initialize(dbname='catalog', db_hostname="localhost"):
746 rajveer 234
    #metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
1122 chandransh 235
    #metadata.bind = 'mysql://root:shop2020@localhost/catalog'
6532 amit.gupta 236
    cengine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
237
    metadata.bind = cengine
94 ashish 238
    metadata.bind.echo = True
239
    setup_all(True)
115 ashish 240
 
241
if __name__=="__main__":
242
    initialize()