You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0001_initial.py 23KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.db import models, migrations
  4. import oscar.models.fields.autoslugfield
  5. import django.db.models.deletion
  6. import oscar.models.fields
  7. from django.conf import settings
  8. class Migration(migrations.Migration):
  9. dependencies = [
  10. ('partner', '0001_initial'),
  11. ('customer', '0001_initial'),
  12. ('address', '0001_initial'),
  13. ('basket', '0002_auto_20140827_1705'),
  14. ('catalogue', '0001_initial'),
  15. ('sites', '0001_initial'),
  16. migrations.swappable_dependency(settings.AUTH_USER_MODEL),
  17. ]
  18. operations = [
  19. migrations.CreateModel(
  20. name='BillingAddress',
  21. fields=[
  22. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  23. ('title', models.CharField(verbose_name='Title', max_length=64, blank=True, choices=[('Mr', 'Mr'), ('Miss', 'Miss'), ('Mrs', 'Mrs'), ('Ms', 'Ms'), ('Dr', 'Dr')])),
  24. ('first_name', models.CharField(max_length=255, verbose_name='First name', blank=True)),
  25. ('last_name', models.CharField(max_length=255, verbose_name='Last name', blank=True)),
  26. ('line1', models.CharField(max_length=255, verbose_name='First line of address')),
  27. ('line2', models.CharField(max_length=255, verbose_name='Second line of address', blank=True)),
  28. ('line3', models.CharField(max_length=255, verbose_name='Third line of address', blank=True)),
  29. ('line4', models.CharField(max_length=255, verbose_name='City', blank=True)),
  30. ('state', models.CharField(max_length=255, verbose_name='State/County', blank=True)),
  31. ('postcode', oscar.models.fields.UppercaseCharField(max_length=64, verbose_name='Post/Zip-code', blank=True)),
  32. ('search_text', models.TextField(editable=False, verbose_name='Search text - used only for searching addresses')),
  33. ('country', models.ForeignKey(verbose_name='Country', to='address.Country')),
  34. ],
  35. options={
  36. 'verbose_name_plural': 'Billing addresses',
  37. 'verbose_name': 'Billing address',
  38. 'abstract': False,
  39. },
  40. bases=(models.Model,),
  41. ),
  42. migrations.CreateModel(
  43. name='CommunicationEvent',
  44. fields=[
  45. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  46. ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date')),
  47. ('event_type', models.ForeignKey(verbose_name='Event Type', to='customer.CommunicationEventType')),
  48. ],
  49. options={
  50. 'ordering': ['-date_created'],
  51. 'verbose_name_plural': 'Communication Events',
  52. 'verbose_name': 'Communication Event',
  53. 'abstract': False,
  54. },
  55. bases=(models.Model,),
  56. ),
  57. migrations.CreateModel(
  58. name='Line',
  59. fields=[
  60. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  61. ('partner_name', models.CharField(max_length=128, verbose_name='Partner name', blank=True)),
  62. ('partner_sku', models.CharField(max_length=128, verbose_name='Partner SKU')),
  63. ('partner_line_reference', models.CharField(verbose_name='Partner reference', max_length=128, help_text='This is the item number that the partner uses within their system', blank=True)),
  64. ('partner_line_notes', models.TextField(verbose_name='Partner Notes', blank=True)),
  65. ('title', models.CharField(max_length=255, verbose_name='Title')),
  66. ('upc', models.CharField(verbose_name='UPC', max_length=128, blank=True, null=True)),
  67. ('quantity', models.PositiveIntegerField(default=1, verbose_name='Quantity')),
  68. ('line_price_incl_tax', models.DecimalField(max_digits=12, decimal_places=2, verbose_name='Price (inc. tax)')),
  69. ('line_price_excl_tax', models.DecimalField(max_digits=12, decimal_places=2, verbose_name='Price (excl. tax)')),
  70. ('line_price_before_discounts_incl_tax', models.DecimalField(max_digits=12, decimal_places=2, verbose_name='Price before discounts (inc. tax)')),
  71. ('line_price_before_discounts_excl_tax', models.DecimalField(max_digits=12, decimal_places=2, verbose_name='Price before discounts (excl. tax)')),
  72. ('unit_cost_price', models.DecimalField(max_digits=12, decimal_places=2, blank=True, verbose_name='Unit Cost Price', null=True)),
  73. ('unit_price_incl_tax', models.DecimalField(max_digits=12, decimal_places=2, blank=True, verbose_name='Unit Price (inc. tax)', null=True)),
  74. ('unit_price_excl_tax', models.DecimalField(max_digits=12, decimal_places=2, blank=True, verbose_name='Unit Price (excl. tax)', null=True)),
  75. ('unit_retail_price', models.DecimalField(max_digits=12, decimal_places=2, blank=True, verbose_name='Unit Retail Price', null=True)),
  76. ('status', models.CharField(max_length=255, verbose_name='Status', blank=True)),
  77. ('est_dispatch_date', models.DateField(blank=True, verbose_name='Estimated Dispatch Date', null=True)),
  78. ],
  79. options={
  80. 'verbose_name_plural': 'Order Lines',
  81. 'verbose_name': 'Order Line',
  82. 'abstract': False,
  83. },
  84. bases=(models.Model,),
  85. ),
  86. migrations.CreateModel(
  87. name='LineAttribute',
  88. fields=[
  89. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  90. ('type', models.CharField(max_length=128, verbose_name='Type')),
  91. ('value', models.CharField(max_length=255, verbose_name='Value')),
  92. ('line', models.ForeignKey(verbose_name='Line', related_name='attributes', to='order.Line')),
  93. ('option', models.ForeignKey(verbose_name='Option', on_delete=django.db.models.deletion.SET_NULL, related_name='line_attributes', to='catalogue.Option', null=True)),
  94. ],
  95. options={
  96. 'verbose_name_plural': 'Line Attributes',
  97. 'verbose_name': 'Line Attribute',
  98. 'abstract': False,
  99. },
  100. bases=(models.Model,),
  101. ),
  102. migrations.CreateModel(
  103. name='LinePrice',
  104. fields=[
  105. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  106. ('quantity', models.PositiveIntegerField(default=1, verbose_name='Quantity')),
  107. ('price_incl_tax', models.DecimalField(max_digits=12, decimal_places=2, verbose_name='Price (inc. tax)')),
  108. ('price_excl_tax', models.DecimalField(max_digits=12, decimal_places=2, verbose_name='Price (excl. tax)')),
  109. ('shipping_incl_tax', models.DecimalField(default=0, max_digits=12, decimal_places=2, verbose_name='Shiping (inc. tax)')),
  110. ('shipping_excl_tax', models.DecimalField(default=0, max_digits=12, decimal_places=2, verbose_name='Shipping (excl. tax)')),
  111. ('line', models.ForeignKey(verbose_name='Line', related_name='prices', to='order.Line')),
  112. ],
  113. options={
  114. 'ordering': ('id',),
  115. 'verbose_name_plural': 'Line Prices',
  116. 'verbose_name': 'Line Price',
  117. 'abstract': False,
  118. },
  119. bases=(models.Model,),
  120. ),
  121. migrations.CreateModel(
  122. name='Order',
  123. fields=[
  124. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  125. ('number', models.CharField(max_length=128, unique=True, db_index=True, verbose_name='Order number')),
  126. ('currency', models.CharField(default='GBP', max_length=12, verbose_name='Currency')),
  127. ('total_incl_tax', models.DecimalField(max_digits=12, decimal_places=2, verbose_name='Order total (inc. tax)')),
  128. ('total_excl_tax', models.DecimalField(max_digits=12, decimal_places=2, verbose_name='Order total (excl. tax)')),
  129. ('shipping_incl_tax', models.DecimalField(default=0, max_digits=12, decimal_places=2, verbose_name='Shipping charge (inc. tax)')),
  130. ('shipping_excl_tax', models.DecimalField(default=0, max_digits=12, decimal_places=2, verbose_name='Shipping charge (excl. tax)')),
  131. ('shipping_method', models.CharField(max_length=128, verbose_name='Shipping method', blank=True)),
  132. ('shipping_code', models.CharField(default='', max_length=128, blank=True)),
  133. ('status', models.CharField(max_length=100, verbose_name='Status', blank=True)),
  134. ('guest_email', models.EmailField(max_length=75, verbose_name='Guest email address', blank=True)),
  135. ('date_placed', models.DateTimeField(auto_now_add=True, db_index=True)),
  136. ('basket', models.ForeignKey(null=True, verbose_name='Basket', on_delete=django.db.models.deletion.SET_NULL, to='basket.Basket', blank=True)),
  137. ('billing_address', models.ForeignKey(null=True, verbose_name='Billing Address', on_delete=django.db.models.deletion.SET_NULL, to='order.BillingAddress', blank=True)),
  138. ],
  139. options={
  140. 'ordering': ['-date_placed'],
  141. 'verbose_name_plural': 'Orders',
  142. 'verbose_name': 'Order',
  143. 'abstract': False,
  144. },
  145. bases=(models.Model,),
  146. ),
  147. migrations.CreateModel(
  148. name='OrderDiscount',
  149. fields=[
  150. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  151. ('category', models.CharField(default='Basket', max_length=64, verbose_name='Discount category', choices=[('Basket', 'Basket'), ('Shipping', 'Shipping'), ('Deferred', 'Deferred')])),
  152. ('offer_id', models.PositiveIntegerField(blank=True, verbose_name='Offer ID', null=True)),
  153. ('offer_name', models.CharField(max_length=128, db_index=True, verbose_name='Offer name', blank=True)),
  154. ('voucher_id', models.PositiveIntegerField(blank=True, verbose_name='Voucher ID', null=True)),
  155. ('voucher_code', models.CharField(max_length=128, db_index=True, verbose_name='Code', blank=True)),
  156. ('frequency', models.PositiveIntegerField(verbose_name='Frequency', null=True)),
  157. ('amount', models.DecimalField(default=0, max_digits=12, decimal_places=2, verbose_name='Amount')),
  158. ('message', models.TextField(blank=True)),
  159. ('order', models.ForeignKey(verbose_name='Order', related_name='discounts', to='order.Order')),
  160. ],
  161. options={
  162. 'verbose_name_plural': 'Order Discounts',
  163. 'verbose_name': 'Order Discount',
  164. 'abstract': False,
  165. },
  166. bases=(models.Model,),
  167. ),
  168. migrations.CreateModel(
  169. name='OrderNote',
  170. fields=[
  171. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  172. ('note_type', models.CharField(max_length=128, verbose_name='Note Type', blank=True)),
  173. ('message', models.TextField(verbose_name='Message')),
  174. ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date Created')),
  175. ('date_updated', models.DateTimeField(auto_now=True, verbose_name='Date Updated')),
  176. ('order', models.ForeignKey(verbose_name='Order', related_name='notes', to='order.Order')),
  177. ('user', models.ForeignKey(verbose_name='User', to=settings.AUTH_USER_MODEL, null=True)),
  178. ],
  179. options={
  180. 'verbose_name_plural': 'Order Notes',
  181. 'verbose_name': 'Order Note',
  182. 'abstract': False,
  183. },
  184. bases=(models.Model,),
  185. ),
  186. migrations.CreateModel(
  187. name='PaymentEvent',
  188. fields=[
  189. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  190. ('amount', models.DecimalField(max_digits=12, decimal_places=2, verbose_name='Amount')),
  191. ('reference', models.CharField(max_length=128, verbose_name='Reference', blank=True)),
  192. ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')),
  193. ],
  194. options={
  195. 'ordering': ['-date_created'],
  196. 'verbose_name_plural': 'Payment Events',
  197. 'verbose_name': 'Payment Event',
  198. 'abstract': False,
  199. },
  200. bases=(models.Model,),
  201. ),
  202. migrations.CreateModel(
  203. name='PaymentEventQuantity',
  204. fields=[
  205. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  206. ('quantity', models.PositiveIntegerField(verbose_name='Quantity')),
  207. ('event', models.ForeignKey(verbose_name='Event', related_name='line_quantities', to='order.PaymentEvent')),
  208. ('line', models.ForeignKey(verbose_name='Line', related_name='payment_event_quantities', to='order.Line')),
  209. ],
  210. options={
  211. 'verbose_name_plural': 'Payment Event Quantities',
  212. 'verbose_name': 'Payment Event Quantity',
  213. },
  214. bases=(models.Model,),
  215. ),
  216. migrations.CreateModel(
  217. name='PaymentEventType',
  218. fields=[
  219. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  220. ('name', models.CharField(unique=True, max_length=128, verbose_name='Name')),
  221. ('code', oscar.models.fields.autoslugfield.AutoSlugField(populate_from='name', unique=True, verbose_name='Code', max_length=128, editable=False, blank=True)),
  222. ],
  223. options={
  224. 'ordering': ('name',),
  225. 'verbose_name_plural': 'Payment Event Types',
  226. 'verbose_name': 'Payment Event Type',
  227. 'abstract': False,
  228. },
  229. bases=(models.Model,),
  230. ),
  231. migrations.CreateModel(
  232. name='ShippingAddress',
  233. fields=[
  234. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  235. ('title', models.CharField(verbose_name='Title', max_length=64, blank=True, choices=[('Mr', 'Mr'), ('Miss', 'Miss'), ('Mrs', 'Mrs'), ('Ms', 'Ms'), ('Dr', 'Dr')])),
  236. ('first_name', models.CharField(max_length=255, verbose_name='First name', blank=True)),
  237. ('last_name', models.CharField(max_length=255, verbose_name='Last name', blank=True)),
  238. ('line1', models.CharField(max_length=255, verbose_name='First line of address')),
  239. ('line2', models.CharField(max_length=255, verbose_name='Second line of address', blank=True)),
  240. ('line3', models.CharField(max_length=255, verbose_name='Third line of address', blank=True)),
  241. ('line4', models.CharField(max_length=255, verbose_name='City', blank=True)),
  242. ('state', models.CharField(max_length=255, verbose_name='State/County', blank=True)),
  243. ('postcode', oscar.models.fields.UppercaseCharField(max_length=64, verbose_name='Post/Zip-code', blank=True)),
  244. ('search_text', models.TextField(editable=False, verbose_name='Search text - used only for searching addresses')),
  245. ('phone_number', oscar.models.fields.PhoneNumberField(verbose_name='Phone number', help_text='In case we need to call you about your order', blank=True)),
  246. ('notes', models.TextField(verbose_name='Instructions', help_text='Tell us anything we should know when delivering your order.', blank=True)),
  247. ('country', models.ForeignKey(verbose_name='Country', to='address.Country')),
  248. ],
  249. options={
  250. 'verbose_name_plural': 'Shipping addresses',
  251. 'verbose_name': 'Shipping address',
  252. 'abstract': False,
  253. },
  254. bases=(models.Model,),
  255. ),
  256. migrations.CreateModel(
  257. name='ShippingEvent',
  258. fields=[
  259. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  260. ('notes', models.TextField(verbose_name='Event notes', help_text='This could be the dispatch reference, or a tracking number', blank=True)),
  261. ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date Created')),
  262. ],
  263. options={
  264. 'ordering': ['-date_created'],
  265. 'verbose_name_plural': 'Shipping Events',
  266. 'verbose_name': 'Shipping Event',
  267. 'abstract': False,
  268. },
  269. bases=(models.Model,),
  270. ),
  271. migrations.CreateModel(
  272. name='ShippingEventQuantity',
  273. fields=[
  274. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  275. ('quantity', models.PositiveIntegerField(verbose_name='Quantity')),
  276. ('event', models.ForeignKey(verbose_name='Event', related_name='line_quantities', to='order.ShippingEvent')),
  277. ('line', models.ForeignKey(verbose_name='Line', related_name='shipping_event_quantities', to='order.Line')),
  278. ],
  279. options={
  280. 'verbose_name_plural': 'Shipping Event Quantities',
  281. 'verbose_name': 'Shipping Event Quantity',
  282. },
  283. bases=(models.Model,),
  284. ),
  285. migrations.CreateModel(
  286. name='ShippingEventType',
  287. fields=[
  288. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  289. ('name', models.CharField(unique=True, max_length=255, verbose_name='Name')),
  290. ('code', oscar.models.fields.autoslugfield.AutoSlugField(populate_from='name', unique=True, verbose_name='Code', max_length=128, editable=False, blank=True)),
  291. ],
  292. options={
  293. 'ordering': ('name',),
  294. 'verbose_name_plural': 'Shipping Event Types',
  295. 'verbose_name': 'Shipping Event Type',
  296. 'abstract': False,
  297. },
  298. bases=(models.Model,),
  299. ),
  300. migrations.AlterUniqueTogether(
  301. name='shippingeventquantity',
  302. unique_together=set([('event', 'line')]),
  303. ),
  304. migrations.AddField(
  305. model_name='shippingevent',
  306. name='event_type',
  307. field=models.ForeignKey(verbose_name='Event Type', to='order.ShippingEventType'),
  308. preserve_default=True,
  309. ),
  310. migrations.AddField(
  311. model_name='shippingevent',
  312. name='lines',
  313. field=models.ManyToManyField(related_name='shipping_events', verbose_name='Lines', to='order.Line', through='order.ShippingEventQuantity'),
  314. preserve_default=True,
  315. ),
  316. migrations.AddField(
  317. model_name='shippingevent',
  318. name='order',
  319. field=models.ForeignKey(verbose_name='Order', related_name='shipping_events', to='order.Order'),
  320. preserve_default=True,
  321. ),
  322. migrations.AlterUniqueTogether(
  323. name='paymenteventquantity',
  324. unique_together=set([('event', 'line')]),
  325. ),
  326. migrations.AddField(
  327. model_name='paymentevent',
  328. name='event_type',
  329. field=models.ForeignKey(verbose_name='Event Type', to='order.PaymentEventType'),
  330. preserve_default=True,
  331. ),
  332. migrations.AddField(
  333. model_name='paymentevent',
  334. name='lines',
  335. field=models.ManyToManyField(through='order.PaymentEventQuantity', verbose_name='Lines', to='order.Line'),
  336. preserve_default=True,
  337. ),
  338. migrations.AddField(
  339. model_name='paymentevent',
  340. name='order',
  341. field=models.ForeignKey(verbose_name='Order', related_name='payment_events', to='order.Order'),
  342. preserve_default=True,
  343. ),
  344. migrations.AddField(
  345. model_name='paymentevent',
  346. name='shipping_event',
  347. field=models.ForeignKey(related_name='payment_events', to='order.ShippingEvent', null=True),
  348. preserve_default=True,
  349. ),
  350. migrations.AddField(
  351. model_name='order',
  352. name='shipping_address',
  353. field=models.ForeignKey(null=True, verbose_name='Shipping Address', on_delete=django.db.models.deletion.SET_NULL, to='order.ShippingAddress', blank=True),
  354. preserve_default=True,
  355. ),
  356. migrations.AddField(
  357. model_name='order',
  358. name='site',
  359. field=models.ForeignKey(verbose_name='Site', on_delete=django.db.models.deletion.SET_NULL, to='sites.Site', null=True),
  360. preserve_default=True,
  361. ),
  362. migrations.AddField(
  363. model_name='order',
  364. name='user',
  365. field=models.ForeignKey(null=True, verbose_name='User', on_delete=django.db.models.deletion.SET_NULL, related_name='orders', to=settings.AUTH_USER_MODEL, blank=True),
  366. preserve_default=True,
  367. ),
  368. migrations.AddField(
  369. model_name='lineprice',
  370. name='order',
  371. field=models.ForeignKey(verbose_name='Option', related_name='line_prices', to='order.Order'),
  372. preserve_default=True,
  373. ),
  374. migrations.AddField(
  375. model_name='line',
  376. name='order',
  377. field=models.ForeignKey(verbose_name='Order', related_name='lines', to='order.Order'),
  378. preserve_default=True,
  379. ),
  380. migrations.AddField(
  381. model_name='line',
  382. name='partner',
  383. field=models.ForeignKey(null=True, verbose_name='Partner', on_delete=django.db.models.deletion.SET_NULL, related_name='order_lines', to='partner.Partner', blank=True),
  384. preserve_default=True,
  385. ),
  386. migrations.AddField(
  387. model_name='line',
  388. name='product',
  389. field=models.ForeignKey(null=True, verbose_name='Product', on_delete=django.db.models.deletion.SET_NULL, to='catalogue.Product', blank=True),
  390. preserve_default=True,
  391. ),
  392. migrations.AddField(
  393. model_name='line',
  394. name='stockrecord',
  395. field=models.ForeignKey(null=True, verbose_name='Stock record', on_delete=django.db.models.deletion.SET_NULL, to='partner.StockRecord', blank=True),
  396. preserve_default=True,
  397. ),
  398. migrations.AddField(
  399. model_name='communicationevent',
  400. name='order',
  401. field=models.ForeignKey(verbose_name='Order', related_name='communication_events', to='order.Order'),
  402. preserve_default=True,
  403. ),
  404. ]