| Line 7... |
Line 7... |
| 7 |
from elixir.entity import Entity
|
7 |
from elixir.entity import Entity
|
| 8 |
from elixir.fields import Field
|
8 |
from elixir.fields import Field
|
| 9 |
from sqlalchemy.types import Integer, Binary
|
9 |
from sqlalchemy.types import Integer, Binary
|
| 10 |
from elixir.relationships import OneToMany, ManyToOne
|
10 |
from elixir.relationships import OneToMany, ManyToOne
|
| 11 |
import datetime
|
11 |
import datetime
|
| - |
|
12 |
import elixir
|
| 12 |
|
13 |
|
| 13 |
class BestSellers(Entity):
|
14 |
class BestSellers(Entity):
|
| 14 |
manufacturer_name = Field(String(100), primary_key=True)
|
15 |
manufacturer_name = Field(String(100), primary_key=True)
|
| 15 |
model_number = Field(String(50), primary_key=True)
|
16 |
model_number = Field(String(50), primary_key=True)
|
| 16 |
color = Field(String(20), primary_key=True)
|
17 |
color = Field(String(20), primary_key=True)
|
| 17 |
rank = Field(Integer)
|
18 |
rank = Field(Integer)
|
| 18 |
using_options(shortnames=True)
|
19 |
using_options(shortnames=True)
|
| - |
|
20 |
using_table_options(mysql_engine="InnoDB")
|
| 19 |
|
21 |
|
| 20 |
class Warehouse(Entity):
|
22 |
class Warehouse(Entity):
|
| 21 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
23 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
| 22 |
location = Field(String(200))
|
24 |
location = Field(String(200))
|
| 23 |
status = Field(Integer)
|
25 |
status = Field(Integer)
|
| Line 27... |
Line 29... |
| 27 |
pincode = Field(String(10))
|
29 |
pincode = Field(String(10))
|
| 28 |
vendorString = Field(String(50))
|
30 |
vendorString = Field(String(50))
|
| 29 |
inventory = OneToMany('CurrentInventorySnapshot')
|
31 |
inventory = OneToMany('CurrentInventorySnapshot')
|
| 30 |
inventoryHistory = OneToMany('ItemInventoryHistory')
|
32 |
inventoryHistory = OneToMany('ItemInventoryHistory')
|
| 31 |
logisticsLocation = Field(Integer)
|
33 |
logisticsLocation = Field(Integer)
|
| - |
|
34 |
using_options(shortnames=True)
|
| - |
|
35 |
using_table_options(mysql_engine="InnoDB")
|
| 32 |
|
36 |
|
| 33 |
def __repr__(self):
|
37 |
def __repr__(self):
|
| 34 |
return "<warehouse>%s</warehouse>" %(self.location)
|
38 |
return "<warehouse>%s</warehouse>" %(self.location)
|
| 35 |
|
39 |
|
| 36 |
@property
|
40 |
@property
|
| Line 41... |
Line 45... |
| 41 |
return items
|
45 |
return items
|
| 42 |
|
46 |
|
| 43 |
class EntityIDGenerator(Entity):
|
47 |
class EntityIDGenerator(Entity):
|
| 44 |
id=Field(Integer, primary_key=True)
|
48 |
id=Field(Integer, primary_key=True)
|
| 45 |
using_options(shortnames=True)
|
49 |
using_options(shortnames=True)
|
| - |
|
50 |
using_table_options(mysql_engine="InnoDB")
|
| 46 |
|
51 |
|
| 47 |
class Item(Entity):
|
52 |
class Item(Entity):
|
| 48 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
53 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
| 49 |
manufacturer_name = Field(String(100))
|
54 |
manufacturer_name = Field(String(100))
|
| 50 |
model_number = Field(String(50))
|
55 |
model_number = Field(String(50))
|
| Line 73... |
Line 78... |
| 73 |
currentInventory = OneToMany('CurrentInventorySnapshot')
|
78 |
currentInventory = OneToMany('CurrentInventorySnapshot')
|
| 74 |
inventoryHistory = OneToMany('ItemInventoryHistory')
|
79 |
inventoryHistory = OneToMany('ItemInventoryHistory')
|
| 75 |
iteminfo = OneToMany("ItemInfo")
|
80 |
iteminfo = OneToMany("ItemInfo")
|
| 76 |
statusChangeLog = OneToMany("ItemChangeLog")
|
81 |
statusChangeLog = OneToMany("ItemChangeLog")
|
| 77 |
hotspotCategory = Field(String(50))
|
82 |
hotspotCategory = Field(String(50))
|
| - |
|
83 |
using_options(shortnames=True)
|
| - |
|
84 |
using_table_options(mysql_engine="InnoDB")
|
| 78 |
|
85 |
|
| 79 |
def __repr__(self):
|
86 |
def __repr__(self):
|
| 80 |
return "<Item>%d</item>" % (self.id)
|
87 |
return "<Item>%d</item>" % (self.id)
|
| 81 |
|
88 |
|
| 82 |
@property
|
89 |
@property
|
| Line 100... |
Line 107... |
| 100 |
class ItemInfo(Entity):
|
107 |
class ItemInfo(Entity):
|
| 101 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
108 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
| 102 |
key = Field(String(30))
|
109 |
key = Field(String(30))
|
| 103 |
value = Field(String(100))
|
110 |
value = Field(String(100))
|
| 104 |
item = ManyToOne("Item")
|
111 |
item = ManyToOne("Item")
|
| - |
|
112 |
using_options(shortnames=True)
|
| - |
|
113 |
using_table_options(mysql_engine="InnoDB")
|
| 105 |
|
114 |
|
| 106 |
def __repr__(self):
|
115 |
def __repr__(self):
|
| 107 |
return "<ItemInfo><key>%s</key><value>%s</value></ItemInfo>" % (self.key, self.value)
|
116 |
return "<ItemInfo><key>%s</key><value>%s</value></ItemInfo>" % (self.key, self.value)
|
| 108 |
|
117 |
|
| 109 |
|
118 |
|
| Line 111... |
Line 120... |
| 111 |
#id = Field(Integer, primary_key=True)
|
120 |
#id = Field(Integer, primary_key=True)
|
| 112 |
#checkedOn = Field(DateTime, default=datetime.datetime.now())
|
121 |
#checkedOn = Field(DateTime, default=datetime.datetime.now())
|
| 113 |
availibility = Field(Integer)
|
122 |
availibility = Field(Integer)
|
| 114 |
item = ManyToOne("Item")
|
123 |
item = ManyToOne("Item")
|
| 115 |
warehouse = ManyToOne("Warehouse")
|
124 |
warehouse = ManyToOne("Warehouse")
|
| - |
|
125 |
using_options(shortnames=True)
|
| - |
|
126 |
using_table_options(mysql_engine="InnoDB")
|
| 116 |
|
127 |
|
| 117 |
def __repr__(self):
|
128 |
def __repr__(self):
|
| 118 |
return "<current inventory><availability> %s </availability><time>%s</time><item>%s</item><warehouse>%s</warehouse></current inventory>" %(self.availibility, self.checkedOn, self.item, self.warehouse)
|
129 |
return "<current inventory><availability> %s </availability><time>%s</time><item>%s</item><warehouse>%s</warehouse></current inventory>" %(self.availibility, self.checkedOn, self.item, self.warehouse)
|
| 119 |
|
130 |
|
| 120 |
class ItemInventoryHistory(Entity):
|
131 |
class ItemInventoryHistory(Entity):
|
| 121 |
id = Field(Integer, primary_key=True, autoincrement = True)
|
132 |
id = Field(Integer, primary_key=True, autoincrement = True)
|
| 122 |
timestamp = Field(DateTime, default=datetime.datetime.now())
|
133 |
timestamp = Field(DateTime, default=datetime.datetime.now())
|
| 123 |
availibility = Field(Integer)
|
134 |
availibility = Field(Integer)
|
| 124 |
item = ManyToOne("Item")
|
135 |
item = ManyToOne("Item")
|
| 125 |
warehouse = ManyToOne("Warehouse")
|
136 |
warehouse = ManyToOne("Warehouse")
|
| - |
|
137 |
using_options(shortnames=True)
|
| - |
|
138 |
using_table_options(mysql_engine="InnoDB")
|
| 126 |
|
139 |
|
| 127 |
def __repr__(self):
|
140 |
def __repr__(self):
|
| 128 |
pass
|
141 |
pass
|
| 129 |
|
142 |
|
| 130 |
class ItemChangeLog(Entity):
|
143 |
class ItemChangeLog(Entity):
|
| 131 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
144 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
| 132 |
old_status = Field(Integer)
|
145 |
old_status = Field(Integer)
|
| 133 |
new_status = Field(Integer)
|
146 |
new_status = Field(Integer)
|
| 134 |
timestamp = Field(DateTime, default=datetime.datetime.now())
|
147 |
timestamp = Field(DateTime, default=datetime.datetime.now())
|
| 135 |
item = ManyToOne("Item")
|
148 |
item = ManyToOne("Item")
|
| - |
|
149 |
using_options(shortnames=True)
|
| - |
|
150 |
using_table_options(mysql_engine="InnoDB")
|
| 136 |
|
151 |
|
| 137 |
def __repr__(self):
|
152 |
def __repr__(self):
|
| 138 |
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)
|
153 |
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)
|
| 139 |
|
154 |
|
| 140 |
class Category(Entity):
|
155 |
class Category(Entity):
|
| 141 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
156 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
| 142 |
object = Field(Binary)
|
157 |
object = Field(Binary)
|
| - |
|
158 |
using_options(shortnames=True)
|
| - |
|
159 |
using_table_options(mysql_engine="InnoDB")
|
| 143 |
|
160 |
|
| 144 |
def initialize():
|
161 |
def initialize():
|
| 145 |
metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
|
162 |
#metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
|
| - |
|
163 |
metadata.bind = 'mysql://root:shop2020@localhost/catalog'
|
| 146 |
metadata.bind.echo = True
|
164 |
metadata.bind.echo = True
|
| 147 |
setup_all(True)
|
165 |
setup_all(True)
|
| 148 |
|
166 |
|
| 149 |
if __name__=="__main__":
|
167 |
if __name__=="__main__":
|
| 150 |
initialize()
|
168 |
initialize()
|
| 151 |
|
169 |
|