# Generated by Django 4.2.25 on 2026-04-02 22:56

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import uuid


class Migration(migrations.Migration):

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('core', '0011_stockmovement_purchase'),
    ]

    operations = [
        migrations.AlterField(
            model_name='cashtransaction',
            name='payment_method',
            field=models.CharField(choices=[('cash', 'Cash'), ('mpesa_paybill', 'M-Pesa Paybill'), ('mpesa_till', 'M-Pesa Till'), ('bank_transfer', 'Bank Transfer'), ('on_credit', 'On Credit')], max_length=50),
        ),
        migrations.AlterField(
            model_name='cashtransfer',
            name='from_payment_method',
            field=models.CharField(choices=[('cash', 'Cash'), ('mpesa_paybill', 'M-Pesa Paybill'), ('mpesa_till', 'M-Pesa Till'), ('bank_transfer', 'Bank Transfer'), ('on_credit', 'On Credit')], help_text='Payment method losing money', max_length=50),
        ),
        migrations.AlterField(
            model_name='cashtransfer',
            name='to_payment_method',
            field=models.CharField(choices=[('cash', 'Cash'), ('mpesa_paybill', 'M-Pesa Paybill'), ('mpesa_till', 'M-Pesa Till'), ('bank_transfer', 'Bank Transfer'), ('on_credit', 'On Credit')], help_text='Payment method receiving money', max_length=50),
        ),
        migrations.AlterField(
            model_name='expense',
            name='payment_method',
            field=models.CharField(choices=[('cash', 'Cash'), ('mpesa_paybill', 'M-Pesa Paybill'), ('mpesa_till', 'M-Pesa Till'), ('bank_transfer', 'Bank Transfer'), ('on_credit', 'On Credit')], default='bank_transfer', help_text='Payment method used', max_length=50),
        ),
        migrations.AlterField(
            model_name='locationcashbalance',
            name='payment_method',
            field=models.CharField(choices=[('cash', 'Cash'), ('mpesa_paybill', 'M-Pesa Paybill'), ('mpesa_till', 'M-Pesa Till'), ('bank_transfer', 'Bank Transfer'), ('on_credit', 'On Credit')], max_length=50),
        ),
        migrations.AlterField(
            model_name='purchase',
            name='payment_method',
            field=models.CharField(choices=[('cash', 'Cash'), ('mpesa_paybill', 'M-Pesa Paybill'), ('mpesa_till', 'M-Pesa Till'), ('bank_transfer', 'Bank Transfer'), ('on_credit', 'On Credit')], default='cash', max_length=50),
        ),
        migrations.AlterField(
            model_name='transaction',
            name='payment_method',
            field=models.CharField(choices=[('cash', 'Cash'), ('mpesa_paybill', 'M-Pesa Paybill'), ('mpesa_till', 'M-Pesa Till'), ('bank_transfer', 'Bank Transfer'), ('on_credit', 'On Credit')], default='cash', max_length=50),
        ),
        migrations.CreateModel(
            name='MatatuIncome',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('date', models.DateField()),
                ('amount', models.DecimalField(decimal_places=2, max_digits=12)),
                ('description', models.TextField(blank=True, help_text='e.g. Monday collections, weekend run')),
                ('collected_by', models.CharField(blank=True, help_text='Driver or conductor name', max_length=255)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Matatu Income',
                'verbose_name_plural': 'Matatu Income',
                'ordering': ['-date'],
            },
        ),
        migrations.CreateModel(
            name='MatatuExpense',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('date', models.DateField()),
                ('amount', models.DecimalField(decimal_places=2, max_digits=12)),
                ('category', models.CharField(choices=[('fuel', 'Fuel'), ('repair', 'Repair / Spare Parts'), ('police', 'Police / Fines'), ('parking', 'Parking / Stage Fee'), ('insurance', 'Insurance'), ('sacco', 'SACCO Fees'), ('driver', 'Driver / Conductor Pay'), ('service', 'Routine Service'), ('other', 'Other')], max_length=50)),
                ('description', models.TextField(blank=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Matatu Expense',
                'verbose_name_plural': 'Matatu Expenses',
                'ordering': ['-date'],
            },
        ),
        migrations.CreateModel(
            name='CreditSale',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('customer_name', models.CharField(max_length=255)),
                ('customer_phone', models.CharField(max_length=20)),
                ('due_date', models.DateField(help_text='Date by which payment is expected')),
                ('is_paid', models.BooleanField(default=False)),
                ('paid_at', models.DateTimeField(blank=True, null=True)),
                ('paid_payment_method', models.CharField(blank=True, choices=[('cash', 'Cash'), ('mpesa_paybill', 'M-Pesa Paybill'), ('mpesa_till', 'M-Pesa Till'), ('bank_transfer', 'Bank Transfer'), ('on_credit', 'On Credit')], help_text='How did the customer eventually settle the debt?', max_length=50, null=True)),
                ('notes', models.TextField(blank=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('confirmed_by', models.ForeignKey(blank=True, help_text='Admin who confirmed the payment', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='confirmed_credits', to=settings.AUTH_USER_MODEL)),
                ('transaction', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='credit_sale', to='core.transaction')),
            ],
            options={
                'verbose_name': 'Credit Sale',
                'verbose_name_plural': 'Credit Sales',
                'ordering': ['is_paid', 'due_date'],
            },
        ),
    ]
