# Generated by Django 6.0.7 on 2026-07-14 18:54

import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('accounts', '0001_initial'),
        ('invoicing', '0001_initial'),
        ('notifications', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.AddField(
            model_name='notification',
            name='invoice',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notifications', to='invoicing.invoice'),
        ),
        migrations.AddField(
            model_name='notification',
            name='reminder_offset',
            field=models.CharField(blank=True, choices=[('before_7', '7 Days Before Due'), ('before_3', '3 Days Before Due'), ('due_today', 'Due Today'), ('overdue_3', '3 Days Overdue'), ('overdue_7', '7 Days Overdue'), ('overdue_30', '30 Days Overdue')], max_length=20, null=True),
        ),
        migrations.AlterField(
            model_name='notification',
            name='type',
            field=models.CharField(choices=[('invoice_viewed', 'Invoice Viewed'), ('invoice_paid', 'Invoice Paid'), ('invoice_reminder', 'Invoice Reminder'), ('large_expense_recorded', 'Large Expense Recorded'), ('monthly_report_ready', 'Monthly Report Ready')], max_length=32),
        ),
        migrations.AddConstraint(
            model_name='notification',
            constraint=models.UniqueConstraint(condition=models.Q(('reminder_offset__isnull', False)), fields=('user', 'invoice', 'reminder_offset'), name='unique_reminder_per_user_invoice_offset'),
        ),
        migrations.AddConstraint(
            model_name='reminderrule',
            constraint=models.UniqueConstraint(fields=('company', 'offset'), name='unique_reminder_rule_per_company_offset'),
        ),
    ]
