# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations import oscar.models.fields.autoslugfield import oscar.models.fields import django.db.models.deletion from django.conf import settings class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('address', '0001_initial'), ('sites', '__latest__'), ('partner', '0001_initial'), ('customer', '0001_initial'), ('catalogue', '0001_initial'), ('basket', '0001_initial'), ] operations = [ migrations.CreateModel( name='BillingAddress', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('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')])), ('first_name', models.CharField(max_length=255, verbose_name='First name', blank=True)), ('last_name', models.CharField(max_length=255, verbose_name='Last name', blank=True)), ('line1', models.CharField(max_length=255, verbose_name='First line of address')), ('line2', models.CharField(max_length=255, verbose_name='Second line of address', blank=True)), ('line3', models.CharField(max_length=255, verbose_name='Third line of address', blank=True)), ('line4', models.CharField(max_length=255, verbose_name='City', blank=True)), ('state', models.CharField(max_length=255, verbose_name='State/County', blank=True)), ('postcode', oscar.models.fields.UppercaseCharField(max_length=64, verbose_name='Post/Zip-code', blank=True)), ('search_text', models.TextField(verbose_name='Search text - used only for searching addresses', editable=False)), ('country', models.ForeignKey(verbose_name='Country', to='address.Country')), ], options={ 'abstract': False, 'verbose_name': 'Billing address', 'verbose_name_plural': 'Billing addresses', }, bases=(models.Model,), ), migrations.CreateModel( name='CommunicationEvent', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date')), ('event_type', models.ForeignKey(verbose_name='Event Type', to='customer.CommunicationEventType')), ], options={ 'ordering': [b'-date_created'], 'abstract': False, 'verbose_name': 'Communication Event', 'verbose_name_plural': 'Communication Events', }, bases=(models.Model,), ), migrations.CreateModel( name='Line', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('partner_name', models.CharField(max_length=128, verbose_name='Partner name', blank=True)), ('partner_sku', models.CharField(max_length=128, verbose_name='Partner SKU')), ('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)), ('partner_line_notes', models.TextField(verbose_name='Partner Notes', blank=True)), ('title', models.CharField(max_length=255, verbose_name='Title')), ('upc', models.CharField(max_length=128, null=True, verbose_name='UPC', blank=True)), ('quantity', models.PositiveIntegerField(default=1, verbose_name='Quantity')), ('line_price_incl_tax', models.DecimalField(verbose_name='Price (inc. tax)', max_digits=12, decimal_places=2)), ('line_price_excl_tax', models.DecimalField(verbose_name='Price (excl. tax)', max_digits=12, decimal_places=2)), ('line_price_before_discounts_incl_tax', models.DecimalField(verbose_name='Price before discounts (inc. tax)', max_digits=12, decimal_places=2)), ('line_price_before_discounts_excl_tax', models.DecimalField(verbose_name='Price before discounts (excl. tax)', max_digits=12, decimal_places=2)), ('unit_cost_price', models.DecimalField(null=True, verbose_name='Unit Cost Price', max_digits=12, decimal_places=2, blank=True)), ('unit_price_incl_tax', models.DecimalField(null=True, verbose_name='Unit Price (inc. tax)', max_digits=12, decimal_places=2, blank=True)), ('unit_price_excl_tax', models.DecimalField(null=True, verbose_name='Unit Price (excl. tax)', max_digits=12, decimal_places=2, blank=True)), ('unit_retail_price', models.DecimalField(null=True, verbose_name='Unit Retail Price', max_digits=12, decimal_places=2, blank=True)), ('status', models.CharField(max_length=255, verbose_name='Status', blank=True)), ('est_dispatch_date', models.DateField(null=True, verbose_name='Estimated Dispatch Date', blank=True)), ('partner', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='Partner', blank=True, to='partner.Partner', null=True)), ('product', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='Product', blank=True, to='catalogue.Product', null=True)), ('stockrecord', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='Stock record', blank=True, to='partner.StockRecord', null=True)), ], options={ 'abstract': False, 'verbose_name': 'Order Line', 'verbose_name_plural': 'Order Lines', }, bases=(models.Model,), ), migrations.CreateModel( name='LineAttribute', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('type', models.CharField(max_length=128, verbose_name='Type')), ('value', models.CharField(max_length=255, verbose_name='Value')), ('line', models.ForeignKey(verbose_name='Line', to='order.Line')), ('option', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='Option', to='catalogue.Option', null=True)), ], options={ 'abstract': False, 'verbose_name': 'Line Attribute', 'verbose_name_plural': 'Line Attributes', }, bases=(models.Model,), ), migrations.CreateModel( name='LinePrice', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('quantity', models.PositiveIntegerField(default=1, verbose_name='Quantity')), ('price_incl_tax', models.DecimalField(verbose_name='Price (inc. tax)', max_digits=12, decimal_places=2)), ('price_excl_tax', models.DecimalField(verbose_name='Price (excl. tax)', max_digits=12, decimal_places=2)), ('shipping_incl_tax', models.DecimalField(default=0, verbose_name='Shiping (inc. tax)', max_digits=12, decimal_places=2)), ('shipping_excl_tax', models.DecimalField(default=0, verbose_name='Shipping (excl. tax)', max_digits=12, decimal_places=2)), ('line', models.ForeignKey(verbose_name='Line', to='order.Line')), ], options={ 'ordering': (b'id',), 'abstract': False, 'verbose_name': 'Line Price', 'verbose_name_plural': 'Line Prices', }, bases=(models.Model,), ), migrations.CreateModel( name='Order', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('number', models.CharField(unique=True, max_length=128, verbose_name='Order number', db_index=True)), ('currency', models.CharField(default=b'GBP', max_length=12, verbose_name='Currency')), ('total_incl_tax', models.DecimalField(verbose_name='Order total (inc. tax)', max_digits=12, decimal_places=2)), ('total_excl_tax', models.DecimalField(verbose_name='Order total (excl. tax)', max_digits=12, decimal_places=2)), ('shipping_incl_tax', models.DecimalField(default=0, verbose_name='Shipping charge (inc. tax)', max_digits=12, decimal_places=2)), ('shipping_excl_tax', models.DecimalField(default=0, verbose_name='Shipping charge (excl. tax)', max_digits=12, decimal_places=2)), ('shipping_method', models.CharField(max_length=128, verbose_name='Shipping method', blank=True)), ('shipping_code', models.CharField(default=b'', max_length=128, blank=True)), ('status', models.CharField(max_length=100, verbose_name='Status', blank=True)), ('guest_email', models.EmailField(max_length=75, verbose_name='Guest email address', blank=True)), ('date_placed', models.DateTimeField(auto_now_add=True, db_index=True)), ('basket', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='Basket', blank=True, to='basket.Basket', null=True)), ('billing_address', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='Billing Address', blank=True, to='order.BillingAddress', null=True)), ('site', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='Site', to='sites.Site', null=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='User', blank=True, to=settings.AUTH_USER_MODEL, null=True)), ], options={ 'ordering': [b'-date_placed'], 'abstract': False, 'verbose_name': 'Order', 'verbose_name_plural': 'Orders', }, bases=(models.Model,), ), migrations.AddField( model_name='lineprice', name='order', field=models.ForeignKey(verbose_name='Option', to='order.Order'), preserve_default=True, ), migrations.AddField( model_name='line', name='order', field=models.ForeignKey(verbose_name='Order', to='order.Order'), preserve_default=True, ), migrations.AddField( model_name='communicationevent', name='order', field=models.ForeignKey(verbose_name='Order', to='order.Order'), preserve_default=True, ), migrations.CreateModel( name='OrderDiscount', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('category', models.CharField(default=b'Basket', max_length=64, verbose_name='Discount category', choices=[(b'Basket', 'Basket'), (b'Shipping', 'Shipping'), (b'Deferred', 'Deferred')])), ('offer_id', models.PositiveIntegerField(null=True, verbose_name='Offer ID', blank=True)), ('offer_name', models.CharField(db_index=True, max_length=128, verbose_name='Offer name', blank=True)), ('voucher_id', models.PositiveIntegerField(null=True, verbose_name='Voucher ID', blank=True)), ('voucher_code', models.CharField(db_index=True, max_length=128, verbose_name='Code', blank=True)), ('frequency', models.PositiveIntegerField(null=True, verbose_name='Frequency')), ('amount', models.DecimalField(default=0, verbose_name='Amount', max_digits=12, decimal_places=2)), ('message', models.TextField(blank=True)), ('order', models.ForeignKey(verbose_name='Order', to='order.Order')), ], options={ 'abstract': False, 'verbose_name': 'Order Discount', 'verbose_name_plural': 'Order Discounts', }, bases=(models.Model,), ), migrations.CreateModel( name='OrderNote', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('note_type', models.CharField(max_length=128, verbose_name='Note Type', blank=True)), ('message', models.TextField(verbose_name='Message')), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date Created')), ('date_updated', models.DateTimeField(auto_now=True, verbose_name='Date Updated')), ('order', models.ForeignKey(verbose_name='Order', to='order.Order')), ('user', models.ForeignKey(verbose_name='User', to=settings.AUTH_USER_MODEL, null=True)), ], options={ 'abstract': False, 'verbose_name': 'Order Note', 'verbose_name_plural': 'Order Notes', }, bases=(models.Model,), ), migrations.CreateModel( name='PaymentEvent', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('amount', models.DecimalField(verbose_name='Amount', max_digits=12, decimal_places=2)), ('reference', models.CharField(max_length=128, verbose_name='Reference', blank=True)), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')), ('order', models.ForeignKey(verbose_name='Order', to='order.Order')), ], options={ 'ordering': [b'-date_created'], 'abstract': False, 'verbose_name': 'Payment Event', 'verbose_name_plural': 'Payment Events', }, bases=(models.Model,), ), migrations.CreateModel( name='PaymentEventQuantity', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('quantity', models.PositiveIntegerField(verbose_name='Quantity')), ], options={ 'verbose_name': 'Payment Event Quantity', 'verbose_name_plural': 'Payment Event Quantities', }, bases=(models.Model,), ), migrations.AddField( model_name='paymentevent', name='lines', field=models.ManyToManyField(to='order.Line', verbose_name='Lines', through='order.PaymentEventQuantity'), preserve_default=True, ), migrations.AddField( model_name='paymenteventquantity', name='event', field=models.ForeignKey(verbose_name='Event', to='order.PaymentEvent'), preserve_default=True, ), migrations.AddField( model_name='paymenteventquantity', name='line', field=models.ForeignKey(verbose_name='Line', to='order.Line'), preserve_default=True, ), migrations.AlterUniqueTogether( name='paymenteventquantity', unique_together=set([(b'event', b'line')]), ), migrations.CreateModel( name='PaymentEventType', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('name', models.CharField(unique=True, max_length=128, verbose_name='Name')), ('code', oscar.models.fields.autoslugfield.AutoSlugField(populate_from=b'name', editable=False, max_length=128, blank=True, unique=True, verbose_name='Code')), ], options={ 'ordering': (b'name',), 'abstract': False, 'verbose_name': 'Payment Event Type', 'verbose_name_plural': 'Payment Event Types', }, bases=(models.Model,), ), migrations.AddField( model_name='paymentevent', name='event_type', field=models.ForeignKey(verbose_name='Event Type', to='order.PaymentEventType'), preserve_default=True, ), migrations.CreateModel( name='ShippingAddress', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('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')])), ('first_name', models.CharField(max_length=255, verbose_name='First name', blank=True)), ('last_name', models.CharField(max_length=255, verbose_name='Last name', blank=True)), ('line1', models.CharField(max_length=255, verbose_name='First line of address')), ('line2', models.CharField(max_length=255, verbose_name='Second line of address', blank=True)), ('line3', models.CharField(max_length=255, verbose_name='Third line of address', blank=True)), ('line4', models.CharField(max_length=255, verbose_name='City', blank=True)), ('state', models.CharField(max_length=255, verbose_name='State/County', blank=True)), ('postcode', oscar.models.fields.UppercaseCharField(max_length=64, verbose_name='Post/Zip-code', blank=True)), ('search_text', models.TextField(verbose_name='Search text - used only for searching addresses', editable=False)), ('phone_number', oscar.models.fields.PhoneNumberField(help_text='In case we need to call you about your order', verbose_name='Phone number', blank=True)), ('notes', models.TextField(help_text='Tell us anything we should know when delivering your order.', verbose_name='Instructions', blank=True)), ('country', models.ForeignKey(verbose_name='Country', to='address.Country')), ], options={ 'abstract': False, 'verbose_name': 'Shipping address', 'verbose_name_plural': 'Shipping addresses', }, bases=(models.Model,), ), migrations.AddField( model_name='order', name='shipping_address', field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='Shipping Address', blank=True, to='order.ShippingAddress', null=True), preserve_default=True, ), migrations.CreateModel( name='ShippingEvent', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('notes', models.TextField(help_text='This could be the dispatch reference, or a tracking number', verbose_name='Event notes', blank=True)), ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date Created')), ('order', models.ForeignKey(verbose_name='Order', to='order.Order')), ], options={ 'ordering': [b'-date_created'], 'abstract': False, 'verbose_name': 'Shipping Event', 'verbose_name_plural': 'Shipping Events', }, bases=(models.Model,), ), migrations.AddField( model_name='paymentevent', name='shipping_event', field=models.ForeignKey(to='order.ShippingEvent', null=True), preserve_default=True, ), migrations.CreateModel( name='ShippingEventQuantity', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('quantity', models.PositiveIntegerField(verbose_name='Quantity')), ], options={ 'verbose_name': 'Shipping Event Quantity', 'verbose_name_plural': 'Shipping Event Quantities', }, bases=(models.Model,), ), migrations.AddField( model_name='shippingevent', name='lines', field=models.ManyToManyField(to='order.Line', verbose_name='Lines', through='order.ShippingEventQuantity'), preserve_default=True, ), migrations.AddField( model_name='shippingeventquantity', name='event', field=models.ForeignKey(verbose_name='Event', to='order.ShippingEvent'), preserve_default=True, ), migrations.AddField( model_name='shippingeventquantity', name='line', field=models.ForeignKey(verbose_name='Line', to='order.Line'), preserve_default=True, ), migrations.AlterUniqueTogether( name='shippingeventquantity', unique_together=set([(b'event', b'line')]), ), migrations.CreateModel( name='ShippingEventType', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('name', models.CharField(unique=True, max_length=255, verbose_name='Name')), ('code', oscar.models.fields.autoslugfield.AutoSlugField(populate_from=b'name', editable=False, max_length=128, blank=True, unique=True, verbose_name='Code')), ], options={ 'ordering': (b'name',), 'abstract': False, 'verbose_name': 'Shipping Event Type', 'verbose_name_plural': 'Shipping Event Types', }, bases=(models.Model,), ), migrations.AddField( model_name='shippingevent', name='event_type', field=models.ForeignKey(verbose_name='Event Type', to='order.ShippingEventType'), preserve_default=True, ), ]