Esempio n. 1
0
class Migration(migrations.Migration):

    dependencies = [
        ('dj_address', '0002_auto_20160213_1726'),
        ('order', '0007_auto_20181115_1953'),
    ]

    operations = [
        migrations.AddField(
            model_name='billingaddress',
            name='address',
            field=dj_address.models.AddressField(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.PROTECT,
                to='dj_address.Address'),
        ),
        migrations.AddField(
            model_name='billingaddress',
            name='unit_designator',
            field=models.CharField(blank=True, max_length=32, null=True),
        ),
        migrations.AddField(
            model_name='shippingaddress',
            name='address',
            field=dj_address.models.AddressField(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.PROTECT,
                to='dj_address.Address'),
        ),
        migrations.AddField(
            model_name='shippingaddress',
            name='unit_designator',
            field=models.CharField(blank=True, max_length=32, null=True),
        ),
    ]
class Migration(migrations.Migration):

    replaces = [('partner', '0001_initial'),
                ('partner', '0002_auto_20141007_2032'),
                ('partner', '0003_auto_20150604_1450'),
                ('partner', '0004_auto_20160107_1755'),
                ('partner', '0005_auto_20181115_1953'),
                ('partner', '0006_auto_20190221_0223'),
                ('partner', '0007_auto_20190221_0313'),
                ('partner', '0008_auto_20190221_0347')]

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('dj_address', '0002_auto_20160213_1726'),
        ('address', '0001_initial'),
        ('catalogue', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Partner',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('code',
                 oscar.models.fields.autoslugfield.AutoSlugField(
                     blank=True,
                     editable=False,
                     max_length=128,
                     populate_from='name',
                     unique=True,
                     verbose_name='Code')),
                ('name',
                 models.CharField(blank=True,
                                  max_length=128,
                                  verbose_name='Name')),
                ('users',
                 models.ManyToManyField(blank=True,
                                        null=True,
                                        related_name='partners',
                                        to=settings.AUTH_USER_MODEL,
                                        verbose_name='Users')),
            ],
            options={
                'verbose_name_plural': 'Fulfillment partners',
                'verbose_name': 'Fulfillment partner',
                'abstract': False,
                'permissions':
                (('dashboard_access', 'Can access dashboard'), ),
            },
        ),
        migrations.CreateModel(
            name='PartnerAddress',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title',
                 models.CharField(blank=True,
                                  choices=[('Mr', 'Mr'), ('Miss', 'Miss'),
                                           ('Mrs', 'Mrs'), ('Ms', 'Ms'),
                                           ('Dr', 'Dr')],
                                  max_length=64,
                                  verbose_name='Title')),
                ('first_name',
                 models.CharField(blank=True,
                                  max_length=255,
                                  verbose_name='First name')),
                ('last_name',
                 models.CharField(blank=True,
                                  max_length=255,
                                  verbose_name='Last name')),
                ('partner',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='addresses',
                                   to='partner.Partner',
                                   verbose_name='Partner')),
                ('address',
                 dj_address.models.AddressField(
                     on_delete=django.db.models.deletion.PROTECT,
                     to='dj_address.Address')),
                ('unit_designator',
                 models.CharField(blank=True, max_length=32, null=True)),
            ],
            options={
                'verbose_name_plural': 'Partner addresses',
                'verbose_name': 'Partner address',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='StockAlert',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('threshold',
                 models.PositiveIntegerField(verbose_name='Threshold')),
                ('status',
                 models.CharField(choices=[('Open', 'Open'),
                                           ('Closed', 'Closed')],
                                  default='Open',
                                  max_length=128,
                                  verbose_name='Status')),
                ('date_created',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Date Created')),
                ('date_closed',
                 models.DateTimeField(blank=True,
                                      null=True,
                                      verbose_name='Date Closed')),
            ],
            options={
                'ordering': ('-date_created', ),
                'verbose_name_plural': 'Stock alerts',
                'verbose_name': 'Stock alert',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='StockRecord',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('partner_sku',
                 models.CharField(max_length=128, verbose_name='Partner SKU')),
                ('price_currency',
                 models.CharField(
                     default=oscar.core.utils.get_default_currency,
                     max_length=12,
                     verbose_name='Currency')),
                ('price_excl_tax',
                 models.DecimalField(blank=True,
                                     decimal_places=2,
                                     max_digits=12,
                                     null=True,
                                     verbose_name='Price (excl. tax)')),
                ('price_retail',
                 models.DecimalField(blank=True,
                                     decimal_places=2,
                                     max_digits=12,
                                     null=True,
                                     verbose_name='Price (retail)')),
                ('cost_price',
                 models.DecimalField(blank=True,
                                     decimal_places=2,
                                     max_digits=12,
                                     null=True,
                                     verbose_name='Cost Price')),
                ('num_in_stock',
                 models.PositiveIntegerField(blank=True,
                                             null=True,
                                             verbose_name='Number in stock')),
                ('num_allocated',
                 models.IntegerField(blank=True,
                                     null=True,
                                     verbose_name='Number allocated')),
                ('low_stock_threshold',
                 models.PositiveIntegerField(
                     blank=True, null=True,
                     verbose_name='Low Stock Threshold')),
                ('date_created',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Date created')),
                ('date_updated',
                 models.DateTimeField(auto_now=True,
                                      db_index=True,
                                      verbose_name='Date updated')),
                ('partner',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='stockrecords',
                                   to='partner.Partner',
                                   verbose_name='Partner')),
                ('product',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='stockrecords',
                                   to='catalogue.Product',
                                   verbose_name='Product')),
            ],
            options={
                'verbose_name_plural': 'Stock records',
                'verbose_name': 'Stock record',
                'abstract': False,
            },
        ),
        migrations.AlterUniqueTogether(
            name='stockrecord',
            unique_together={('partner', 'partner_sku')},
        ),
        migrations.AddField(
            model_name='stockalert',
            name='stockrecord',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name='alerts',
                to='partner.StockRecord',
                verbose_name='Stock Record'),
        ),
        migrations.AlterField(
            model_name='partner',
            name='users',
            field=models.ManyToManyField(blank=True,
                                         related_name='partners',
                                         to=settings.AUTH_USER_MODEL,
                                         verbose_name='Users'),
        ),
        migrations.AlterModelOptions(
            name='partner',
            options={
                'ordering': ('name', 'code'),
                'permissions':
                (('dashboard_access', 'Can access dashboard'), ),
                'verbose_name': 'Fulfillment partner',
                'verbose_name_plural': 'Fulfillment partners'
            },
        ),
        migrations.AlterField(
            model_name='partner',
            name='name',
            field=models.CharField(blank=True,
                                   db_index=True,
                                   max_length=128,
                                   verbose_name='Name'),
        ),
        migrations.AlterField(
            model_name='stockalert',
            name='date_created',
            field=models.DateTimeField(auto_now_add=True,
                                       db_index=True,
                                       verbose_name='Date Created'),
        ),
    ]
class Migration(migrations.Migration):

    replaces = [('address', '0001_initial'),
                ('address', '0002_auto_20150927_1547'),
                ('address', '0003_auto_20150927_1551'),
                ('address', '0004_auto_20170226_1122'),
                ('address', '0005_regenerate_user_address_hashes'),
                ('address', '0006_auto_20181115_1953'),
                ('address', '0007_auto_20190221_0223'),
                ('address', '0008_auto_20190221_0313'),
                ('address', '0009_auto_20190221_0347')]

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('dj_address', '0002_auto_20160213_1726'),
    ]

    operations = [
        migrations.CreateModel(
            name='Country',
            fields=[
                ('iso_3166_1_a2',
                 models.CharField(max_length=2,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ISO 3166-1 alpha-2')),
                ('iso_3166_1_a3',
                 models.CharField(blank=True,
                                  max_length=3,
                                  verbose_name='ISO 3166-1 alpha-3')),
                ('iso_3166_1_numeric',
                 models.CharField(blank=True,
                                  max_length=3,
                                  verbose_name='ISO 3166-1 numeric')),
                ('printable_name',
                 models.CharField(db_index=True,
                                  max_length=128,
                                  verbose_name='Country name')),
                ('name',
                 models.CharField(max_length=128,
                                  verbose_name='Official name')),
                ('display_order',
                 models.PositiveSmallIntegerField(
                     db_index=True,
                     default=0,
                     help_text=
                     'Higher the number, higher the country in the list.',
                     verbose_name='Display order')),
                ('is_shipping_country',
                 models.BooleanField(db_index=True,
                                     default=False,
                                     verbose_name='Is shipping country')),
            ],
            options={
                'ordering': ('-display_order', 'printable_name'),
                'verbose_name_plural': 'Countries',
                'verbose_name': 'Country',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='UserAddress',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title',
                 models.CharField(blank=True,
                                  choices=[('Mr', 'Mr'), ('Miss', 'Miss'),
                                           ('Mrs', 'Mrs'), ('Ms', 'Ms'),
                                           ('Dr', 'Dr')],
                                  max_length=64,
                                  verbose_name='Title')),
                ('first_name',
                 models.CharField(blank=True,
                                  max_length=255,
                                  verbose_name='First name')),
                ('last_name',
                 models.CharField(blank=True,
                                  max_length=255,
                                  verbose_name='Last name')),
                ('address',
                 dj_address.models.AddressField(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.PROTECT,
                     to='dj_address.Address')),
                ('unit_designator',
                 models.CharField(blank=True, max_length=32, null=True)),
                ('phone_number',
                 phonenumber_field.modelfields.PhoneNumberField(
                     blank=True,
                     help_text='In case we need to call you about your order',
                     max_length=128,
                     verbose_name='Phone number')),
                ('notes',
                 models.TextField(
                     blank=True,
                     help_text=
                     'Tell us anything we should know when delivering your order.',
                     verbose_name='Instructions')),
                ('is_default_for_shipping',
                 models.BooleanField(
                     default=False, verbose_name='Default shipping address?')),
                ('is_default_for_billing',
                 models.BooleanField(default=False,
                                     verbose_name='Default billing address?')),
                ('num_orders_as_shipping_address',
                 models.PositiveIntegerField(
                     default=0,
                     verbose_name='Number of Orders as Shipping Address')),
                ('date_created',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Date Created')),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='addresses',
                                   to=settings.AUTH_USER_MODEL,
                                   verbose_name='User')),
                ('num_orders_as_billing_address',
                 models.PositiveIntegerField(
                     default=0,
                     verbose_name='Number of Orders as Billing Address')),
            ],
            options={
                'ordering': ['-num_orders'],
                'verbose_name_plural': 'User addresses',
                'verbose_name': 'User address',
                'abstract': False,
            },
        ),
        migrations.AlterModelOptions(
            name='useraddress',
            options={
                'ordering': ['-num_orders_as_shipping_address'],
                'verbose_name': 'User address',
                'verbose_name_plural': 'User addresses'
            },
        ),
        migrations.AlterField(
            model_name='useraddress',
            name='address',
            field=dj_address.models.AddressField(
                default=1,
                on_delete=django.db.models.deletion.PROTECT,
                to='dj_address.Address'),
            preserve_default=False,
        ),
    ]
class Migration(migrations.Migration):

    replaces = [('order', '0001_initial'), ('order', '0002_auto_20141007_2032'), ('order', '0003_auto_20150113_1629'), ('order', '0004_auto_20160111_1108'), ('order', '0005_update_email_length'), ('order', '0006_orderstatuschange'), ('order', '0007_auto_20181115_1953'), ('order', '0008_auto_20190221_0223'), ('order', '0009_auto_20190221_0313'), ('order', '0010_auto_20190221_0347')]

    initial = True

    dependencies = [
        ('customer', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('dj_address', '0002_auto_20160213_1726'),
        ('partner', '0001_initial'),
        ('address', '0001_initial'),
        ('basket', '0002_auto_20140827_1705'),
        ('catalogue', '0001_initial'),
        ('sites', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='BillingAddress',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(blank=True, choices=[('Mr', 'Mr'), ('Miss', 'Miss'), ('Mrs', 'Mrs'), ('Ms', 'Ms'), ('Dr', 'Dr')], max_length=64, verbose_name='Title')),
                ('first_name', models.CharField(blank=True, max_length=255, verbose_name='First name')),
                ('last_name', models.CharField(blank=True, max_length=255, verbose_name='Last name')),
                ('address', dj_address.models.AddressField(on_delete=django.db.models.deletion.PROTECT, to='dj_address.Address')),
                ('unit_designator', models.CharField(blank=True, max_length=32, null=True)),
            ],
            options={
                'verbose_name_plural': 'Billing addresses',
                'verbose_name': 'Billing address',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='CommunicationEvent',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date')),
                ('event_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='customer.CommunicationEventType', verbose_name='Event Type')),
            ],
            options={
                'ordering': ['-date_created'],
                'verbose_name_plural': 'Communication Events',
                'verbose_name': 'Communication Event',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Line',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('partner_name', models.CharField(blank=True, max_length=128, verbose_name='Partner name')),
                ('partner_sku', models.CharField(max_length=128, verbose_name='Partner SKU')),
                ('partner_line_reference', models.CharField(blank=True, help_text='This is the item number that the partner uses within their system', max_length=128, verbose_name='Partner reference')),
                ('partner_line_notes', models.TextField(blank=True, verbose_name='Partner Notes')),
                ('title', models.CharField(max_length=255, verbose_name='Title')),
                ('upc', models.CharField(blank=True, max_length=128, null=True, verbose_name='UPC')),
                ('quantity', models.PositiveIntegerField(default=1, verbose_name='Quantity')),
                ('line_price_incl_tax', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='Price (inc. tax)')),
                ('line_price_excl_tax', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='Price (excl. tax)')),
                ('line_price_before_discounts_incl_tax', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='Price before discounts (inc. tax)')),
                ('line_price_before_discounts_excl_tax', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='Price before discounts (excl. tax)')),
                ('unit_cost_price', models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True, verbose_name='Unit Cost Price')),
                ('unit_price_incl_tax', models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True, verbose_name='Unit Price (inc. tax)')),
                ('unit_price_excl_tax', models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True, verbose_name='Unit Price (excl. tax)')),
                ('unit_retail_price', models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True, verbose_name='Unit Retail Price')),
                ('status', models.CharField(blank=True, max_length=255, verbose_name='Status')),
                ('est_dispatch_date', models.DateField(blank=True, null=True, verbose_name='Estimated Dispatch Date')),
            ],
            options={
                'verbose_name_plural': 'Order Lines',
                'verbose_name': 'Order Line',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='LineAttribute',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('type', models.CharField(max_length=128, verbose_name='Type')),
                ('value', models.CharField(max_length=255, verbose_name='Value')),
                ('line', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='attributes', to='order.Line', verbose_name='Line')),
                ('option', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='line_attributes', to='catalogue.Option', verbose_name='Option')),
            ],
            options={
                'verbose_name_plural': 'Line Attributes',
                'verbose_name': 'Line Attribute',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='LinePrice',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('quantity', models.PositiveIntegerField(default=1, verbose_name='Quantity')),
                ('price_incl_tax', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='Price (inc. tax)')),
                ('price_excl_tax', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='Price (excl. tax)')),
                ('shipping_incl_tax', models.DecimalField(decimal_places=2, default=0, max_digits=12, verbose_name='Shiping (inc. tax)')),
                ('shipping_excl_tax', models.DecimalField(decimal_places=2, default=0, max_digits=12, verbose_name='Shipping (excl. tax)')),
                ('line', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='prices', to='order.Line', verbose_name='Line')),
            ],
            options={
                'ordering': ('id',),
                'verbose_name_plural': 'Line Prices',
                'verbose_name': 'Line Price',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Order',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('number', models.CharField(db_index=True, max_length=128, unique=True, verbose_name='Order number')),
                ('currency', models.CharField(default='GBP', max_length=12, verbose_name='Currency')),
                ('total_incl_tax', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='Order total (inc. tax)')),
                ('total_excl_tax', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='Order total (excl. tax)')),
                ('shipping_incl_tax', models.DecimalField(decimal_places=2, default=0, max_digits=12, verbose_name='Shipping charge (inc. tax)')),
                ('shipping_excl_tax', models.DecimalField(decimal_places=2, default=0, max_digits=12, verbose_name='Shipping charge (excl. tax)')),
                ('shipping_method', models.CharField(blank=True, max_length=128, verbose_name='Shipping method')),
                ('shipping_code', models.CharField(blank=True, default='', max_length=128)),
                ('status', models.CharField(blank=True, max_length=100, verbose_name='Status')),
                ('guest_email', models.EmailField(blank=True, max_length=75, verbose_name='Guest email address')),
                ('date_placed', models.DateTimeField(auto_now_add=True, db_index=True)),
                ('basket', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='basket.Basket', verbose_name='Basket')),
                ('billing_address', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='order.BillingAddress', verbose_name='Billing Address')),
            ],
            options={
                'ordering': ['-date_placed'],
                'verbose_name_plural': 'Orders',
                'verbose_name': 'Order',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='OrderDiscount',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('category', models.CharField(choices=[('Basket', 'Basket'), ('Shipping', 'Shipping'), ('Deferred', 'Deferred')], default='Basket', max_length=64, verbose_name='Discount category')),
                ('offer_id', models.PositiveIntegerField(blank=True, null=True, verbose_name='Offer ID')),
                ('offer_name', models.CharField(blank=True, db_index=True, max_length=128, verbose_name='Offer name')),
                ('voucher_id', models.PositiveIntegerField(blank=True, null=True, verbose_name='Voucher ID')),
                ('voucher_code', models.CharField(blank=True, db_index=True, max_length=128, verbose_name='Code')),
                ('frequency', models.PositiveIntegerField(null=True, verbose_name='Frequency')),
                ('amount', models.DecimalField(decimal_places=2, default=0, max_digits=12, verbose_name='Amount')),
                ('message', models.TextField(blank=True)),
                ('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='discounts', to='order.Order', verbose_name='Order')),
            ],
            options={
                'verbose_name_plural': 'Order Discounts',
                'verbose_name': 'Order Discount',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='OrderNote',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('note_type', models.CharField(blank=True, max_length=128, verbose_name='Note Type')),
                ('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(on_delete=django.db.models.deletion.CASCADE, related_name='notes', to='order.Order', verbose_name='Order')),
                ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User')),
            ],
            options={
                'verbose_name_plural': 'Order Notes',
                'verbose_name': 'Order Note',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='PaymentEvent',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('amount', models.DecimalField(decimal_places=2, max_digits=12, verbose_name='Amount')),
                ('reference', models.CharField(blank=True, max_length=128, verbose_name='Reference')),
                ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')),
            ],
            options={
                'ordering': ['-date_created'],
                'verbose_name_plural': 'Payment Events',
                'verbose_name': 'Payment Event',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='PaymentEventQuantity',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('quantity', models.PositiveIntegerField(verbose_name='Quantity')),
                ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='line_quantities', to='order.PaymentEvent', verbose_name='Event')),
                ('line', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='payment_event_quantities', to='order.Line', verbose_name='Line')),
            ],
            options={
                'verbose_name_plural': 'Payment Event Quantities',
                'verbose_name': 'Payment Event Quantity',
            },
        ),
        migrations.CreateModel(
            name='PaymentEventType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=128, unique=True, verbose_name='Name')),
                ('code', oscar.models.fields.autoslugfield.AutoSlugField(blank=True, editable=False, max_length=128, populate_from='name', unique=True, verbose_name='Code')),
            ],
            options={
                'ordering': ('name',),
                'verbose_name_plural': 'Payment Event Types',
                'verbose_name': 'Payment Event Type',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='ShippingAddress',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(blank=True, choices=[('Mr', 'Mr'), ('Miss', 'Miss'), ('Mrs', 'Mrs'), ('Ms', 'Ms'), ('Dr', 'Dr')], max_length=64, verbose_name='Title')),
                ('first_name', models.CharField(blank=True, max_length=255, verbose_name='First name')),
                ('last_name', models.CharField(blank=True, max_length=255, verbose_name='Last name')),
                ('phone_number', phonenumber_field.modelfields.PhoneNumberField(blank=True, help_text='In case we need to call you about your order', max_length=128, verbose_name='Phone number')),
                ('notes', models.TextField(blank=True, help_text='Tell us anything we should know when delivering your order.', verbose_name='Instructions')),
                ('address', dj_address.models.AddressField(on_delete=django.db.models.deletion.PROTECT, to='dj_address.Address')),
                ('unit_designator', models.CharField(blank=True, max_length=32, null=True)),
            ],
            options={
                'verbose_name_plural': 'Shipping addresses',
                'verbose_name': 'Shipping address',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='ShippingEvent',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('notes', models.TextField(blank=True, help_text='This could be the dispatch reference, or a tracking number', verbose_name='Event notes')),
                ('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date Created')),
            ],
            options={
                'ordering': ['-date_created'],
                'verbose_name_plural': 'Shipping Events',
                'verbose_name': 'Shipping Event',
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='ShippingEventQuantity',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('quantity', models.PositiveIntegerField(verbose_name='Quantity')),
                ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='line_quantities', to='order.ShippingEvent', verbose_name='Event')),
                ('line', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shipping_event_quantities', to='order.Line', verbose_name='Line')),
            ],
            options={
                'verbose_name_plural': 'Shipping Event Quantities',
                'verbose_name': 'Shipping Event Quantity',
            },
        ),
        migrations.CreateModel(
            name='ShippingEventType',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, unique=True, verbose_name='Name')),
                ('code', oscar.models.fields.autoslugfield.AutoSlugField(blank=True, editable=False, max_length=128, populate_from='name', unique=True, verbose_name='Code')),
            ],
            options={
                'ordering': ('name',),
                'verbose_name_plural': 'Shipping Event Types',
                'verbose_name': 'Shipping Event Type',
                'abstract': False,
            },
        ),
        migrations.AlterUniqueTogether(
            name='shippingeventquantity',
            unique_together={('event', 'line')},
        ),
        migrations.AddField(
            model_name='shippingevent',
            name='event_type',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='order.ShippingEventType', verbose_name='Event Type'),
        ),
        migrations.AddField(
            model_name='shippingevent',
            name='lines',
            field=models.ManyToManyField(related_name='shipping_events', through='order.ShippingEventQuantity', to='order.Line', verbose_name='Lines'),
        ),
        migrations.AddField(
            model_name='shippingevent',
            name='order',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shipping_events', to='order.Order', verbose_name='Order'),
        ),
        migrations.AlterUniqueTogether(
            name='paymenteventquantity',
            unique_together={('event', 'line')},
        ),
        migrations.AddField(
            model_name='paymentevent',
            name='event_type',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='order.PaymentEventType', verbose_name='Event Type'),
        ),
        migrations.AddField(
            model_name='paymentevent',
            name='lines',
            field=models.ManyToManyField(through='order.PaymentEventQuantity', to='order.Line', verbose_name='Lines'),
        ),
        migrations.AddField(
            model_name='paymentevent',
            name='order',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='payment_events', to='order.Order', verbose_name='Order'),
        ),
        migrations.AddField(
            model_name='paymentevent',
            name='shipping_event',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='payment_events', to='order.ShippingEvent'),
        ),
        migrations.AddField(
            model_name='order',
            name='shipping_address',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='order.ShippingAddress', verbose_name='Shipping Address'),
        ),
        migrations.AddField(
            model_name='order',
            name='site',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='sites.Site', verbose_name='Site'),
        ),
        migrations.AddField(
            model_name='order',
            name='user',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='orders', to=settings.AUTH_USER_MODEL, verbose_name='User'),
        ),
        migrations.AddField(
            model_name='lineprice',
            name='order',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='line_prices', to='order.Order', verbose_name='Option'),
        ),
        migrations.AddField(
            model_name='line',
            name='order',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lines', to='order.Order', verbose_name='Order'),
        ),
        migrations.AddField(
            model_name='line',
            name='partner',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='order_lines', to='partner.Partner', verbose_name='Partner'),
        ),
        migrations.AddField(
            model_name='line',
            name='product',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='catalogue.Product', verbose_name='Product'),
        ),
        migrations.AddField(
            model_name='line',
            name='stockrecord',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='partner.StockRecord', verbose_name='Stock record'),
        ),
        migrations.AddField(
            model_name='communicationevent',
            name='order',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communication_events', to='order.Order', verbose_name='Order'),
        ),
        migrations.AlterField(
            model_name='order',
            name='currency',
            field=models.CharField(default=oscar.core.utils.get_default_currency, max_length=12, verbose_name='Currency'),
        ),
        migrations.AlterField(
            model_name='order',
            name='date_placed',
            field=models.DateTimeField(db_index=True),
        ),
        migrations.AlterModelOptions(
            name='line',
            options={'ordering': ['pk'], 'verbose_name': 'Order Line', 'verbose_name_plural': 'Order Lines'},
        ),
        migrations.AlterField(
            model_name='order',
            name='guest_email',
            field=models.EmailField(blank=True, max_length=254, verbose_name='Guest email address'),
        ),
        migrations.CreateModel(
            name='OrderStatusChange',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('old_status', models.CharField(blank=True, max_length=100, verbose_name='Old Status')),
                ('new_status', models.CharField(blank=True, max_length=100, verbose_name='New Status')),
                ('date_created', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Date Created')),
                ('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='status_changes', to='order.Order', verbose_name='Order Status Changes')),
            ],
            options={
                'verbose_name': 'Order Status Change',
                'verbose_name_plural': 'Order Status Changes',
                'ordering': ['-date_created'],
                'abstract': False,
            },
        ),
        migrations.AlterField(
            model_name='communicationevent',
            name='date_created',
            field=models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Date'),
        ),
        migrations.AlterField(
            model_name='paymentevent',
            name='date_created',
            field=models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Date created'),
        ),
        migrations.AlterField(
            model_name='shippingevent',
            name='date_created',
            field=models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Date Created'),
        ),
    ]