Subversion Repositories SmartDukaan

Rev

Rev 7281 | Rev 7308 | 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)
208
    using_options(shortnames=True)
7291 vikram.rag 209
    using_table_options(mysql_engine="InnoDB")    
210
 
7281 kshitij.so 211
class Amazonlisted(Entity):
212
    itemId = Field(Integer, primary_key=True, autoincrement=True)
213
    asin = Field(String(255))
214
    name = Field(String(255))
215
    brand = Field(String(255))
216
    model = Field(String(255))
217
    manufacturer_name = Field(String(255))
218
    part_number = Field(String(255))
219
    ean = Field(String(255))
220
    upc = Field(String(255))
221
    fbaPrice = Field(Float)
222
    sellingPrice = Field(Float)
223
    isFba = Field(Boolean)
224
    isNonFba = Field(Boolean)
225
    isInventoryOverride = Field(Boolean)
226
    color = Field(String(255))
227
    category = Field(String(255))
228
    using_options(shortnames=True)
229
    using_table_options(mysql_engine="InnoDB")
230
 
3187 rajveer 231
def initialize(dbname='catalog', db_hostname="localhost"):
746 rajveer 232
    #metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
1122 chandransh 233
    #metadata.bind = 'mysql://root:shop2020@localhost/catalog'
6532 amit.gupta 234
    cengine = create_engine('mysql://root:shop2020@' + db_hostname + '/' + dbname, pool_recycle=7200)
235
    metadata.bind = cengine
94 ashish 236
    metadata.bind.echo = True
237
    setup_all(True)
115 ashish 238
 
239
if __name__=="__main__":
240
    initialize()