您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

0001_initial.py 22KB

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