# Generated by Django 2.0 on 2018-01-09 00:45

import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import djstripe.fields


class Migration(migrations.Migration):

    dependencies = [
        ('djstripe', '0014_auto_20171203_0427'),
    ]

    operations = [
        migrations.CreateModel(
            name='Source',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('stripe_id', djstripe.fields.StripeIdField(max_length=255, unique=True)),
                ('livemode', djstripe.fields.StripeNullBooleanField(default=None, help_text='Null here indicates that the livemode status is unknown or was previously unrecorded. Otherwise, this field indicates whether this record comes from Stripe test mode or live mode operation.')),
                ('stripe_timestamp', djstripe.fields.StripeDateTimeField(help_text='The datetime this object was created in stripe.', null=True)),
                ('metadata', djstripe.fields.StripeJSONField(blank=True, help_text='A set of key/value pairs that you can attach to an object. It can be useful for storing additional information about an object in a structured format.', null=True)),
                ('description', djstripe.fields.StripeTextField(blank=True, help_text='A description of this object.', null=True)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('modified', models.DateTimeField(auto_now=True)),
                ('amount', djstripe.fields.StripeCurrencyField(blank=True, decimal_places=2, help_text='Amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for `single_use` sources.', max_digits=8, null=True)),
                ('client_secret', djstripe.fields.StripeCharField(help_text='The client secret of the source. Used for client-side retrieval using a publishable key.', max_length=255)),
                ('currency', djstripe.fields.StripeCharField(blank=True, help_text='Three-letter ISO currency code', max_length=3, null=True)),
                ('flow', djstripe.fields.StripeCharField(choices=[('code_verification', 'Code verification'), ('none', 'None'), ('receiver', 'Receiver'), ('redirect', 'Redirect')], help_text='The authentication flow of the source.', max_length=17)),
                ('owner', djstripe.fields.StripeJSONField(help_text='Information about the owner of the payment instrument that may be used or required by particular source types.')),
                ('statement_descriptor', djstripe.fields.StripeCharField(blank=True, help_text='Extra information about a source. This will appear on your customer\'s statement every time you charge the source.', max_length=255, null=True)),
                ('status', djstripe.fields.StripeCharField(choices=[('canceled', 'Canceled'), ('chargeable', 'Chargeable'), ('consumed', 'Consumed'), ('failed', 'Failed'), ('pending', 'Pending')], help_text='The status of the source. Only `chargeable` sources can be used to create a charge.', max_length=10)),
                ('type', djstripe.fields.StripeCharField(choices=[('ach_credit_transfer', 'ACH Credit Transfer'), ('alipay', 'Alipay'), ('bancontact', 'Bancontact'), ('bitcoin', 'Bitcoin'), ('card', 'Card'), ('giropay', 'Giropay'), ('ideal', 'iDEAL'), ('p24', 'P24'), ('sepa_debit', 'SEPA Direct Debit'), ('sofort', 'SOFORT'), ('three_d_secure', '3D Secure')], help_text='The type of the source.', max_length=19)),
                ('usage', djstripe.fields.StripeCharField(choices=[('reusable', 'Reusable'), ('single_use', 'Single-use')], help_text='Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while other may leave the option at creation.', max_length=10)),
                ('code_verification', djstripe.fields.StripeJSONField(blank=True, help_text='Information related to the code verification flow. Present if the source is authenticated by a verification code (`flow` is `code_verification`).', null=True)),
                ('receiver', djstripe.fields.StripeJSONField(blank=True, help_text='Information related to the receiver flow. Present if the source is a receiver (`flow` is `receiver`).', null=True)),
                ('redirect', djstripe.fields.StripeJSONField(blank=True, help_text='Information related to the redirect flow. Present if the source is authenticated by a redirect (`flow` is `redirect`).', null=True)),
                ('source_data', djstripe.fields.StripeJSONField(help_text='The data corresponding to the source type.')),
                ('customer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='sources_v3', to='djstripe.Customer')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.AlterField(
            model_name='card',
            name='country',
            field=djstripe.fields.StripeCharField(help_text='Two-letter ISO code representing the country of the card.', max_length=2, null=True),
        ),
        migrations.AlterField(
            model_name='subscription',
            name='application_fee_percent',
            field=djstripe.fields.StripePercentField(blank=True, decimal_places=2, help_text="A positive decimal that represents the fee percentage of the subscription invoice amount that will be transferred to the application owner's Stripe account each billing period.", max_digits=5, null=True, validators=[django.core.validators.MinValueValidator(1.0), django.core.validators.MaxValueValidator(100.0)]),
        ),
        migrations.AlterField(
            model_name='subscription',
            name='canceled_at',
            field=djstripe.fields.StripeDateTimeField(blank=True, help_text='If the subscription has been canceled, the date of that cancellation. If the subscription was canceled with ``cancel_at_period_end``, canceled_at will still reflect the date of the initial cancellation request, not the end of the subscription period when the subscription is automatically moved to a canceled state.', null=True),
        ),
        migrations.AlterField(
            model_name='subscription',
            name='ended_at',
            field=djstripe.fields.StripeDateTimeField(blank=True, help_text='If the subscription has ended (either because it was canceled or because the customer was switched to a subscription to a new plan), the date the subscription ended.', null=True),
        ),
        migrations.AlterField(
            model_name='subscription',
            name='tax_percent',
            field=djstripe.fields.StripePercentField(blank=True, decimal_places=2, help_text='A positive decimal (with at most two decimal places) between 1 and 100. This represents the percentage of the subscription invoice subtotal that will be calculated and added as tax to the final amount each billing period.', max_digits=5, null=True, validators=[django.core.validators.MinValueValidator(1.0), django.core.validators.MaxValueValidator(100.0)]),
        ),
        migrations.AlterField(
            model_name='subscription',
            name='trial_end',
            field=djstripe.fields.StripeDateTimeField(blank=True, help_text='If the subscription has a trial, the end of that trial.', null=True),
        ),
        migrations.AlterField(
            model_name='subscription',
            name='trial_start',
            field=djstripe.fields.StripeDateTimeField(blank=True, help_text='If the subscription has a trial, the beginning of that trial.', null=True),
        ),
    ]
