# Generated by Django 4.2.16 on 2025-10-15 09:12

import beneficiaries.models
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ("references", "0001_initial"),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name="Aid",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("name", models.CharField(max_length=200)),
                (
                    "aid_type",
                    models.CharField(
                        choices=[
                            ("uang", "Bantuan Uang"),
                            ("sembako", "Sembako"),
                            ("kesehatan", "Bantuan Kesehatan"),
                            ("pendidikan", "Bantuan Pendidikan"),
                            ("perumahan", "Bantuan Perumahan"),
                            ("usaha", "Bantuan Usaha"),
                            ("lainnya", "Lainnya"),
                        ],
                        max_length=20,
                    ),
                ),
                (
                    "source",
                    models.CharField(
                        choices=[
                            ("pusat", "Pemerintah Pusat"),
                            ("provinsi", "Pemerintah Provinsi"),
                            ("kabupaten", "Pemerintah Kabupaten"),
                            ("desa", "Pemerintah Desa"),
                            ("swasta", "Swasta"),
                            ("lsm", "LSM"),
                            ("lainnya", "Lainnya"),
                        ],
                        max_length=20,
                    ),
                ),
                ("description", models.TextField(blank=True)),
                (
                    "value_per_beneficiary",
                    models.DecimalField(decimal_places=2, max_digits=12),
                ),
                ("total_budget", models.DecimalField(decimal_places=2, max_digits=15)),
                ("target_beneficiaries", models.PositiveIntegerField()),
                ("start_date", models.DateField()),
                ("end_date", models.DateField()),
                ("requirements", models.TextField(blank=True)),
                ("is_active", models.BooleanField(default=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "created_by",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="beneficiaries_aid_created",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "verbose_name": "Bantuan",
                "verbose_name_plural": "Bantuan",
            },
        ),
        migrations.CreateModel(
            name="BeneficiariesPageHeader",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("title", models.CharField(default="Penerima Bantuan", max_length=200)),
                (
                    "description",
                    models.TextField(
                        blank=True,
                        default="Informasi lengkap mengenai penerima bantuan sosial di desa",
                    ),
                ),
                (
                    "background_image",
                    models.ImageField(blank=True, null=True, upload_to="page_headers/"),
                ),
                ("is_active", models.BooleanField(default=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
            ],
            options={
                "verbose_name": "Header Halaman Penerima Bantuan",
                "verbose_name_plural": "Header Halaman Penerima Bantuan",
            },
        ),
        migrations.CreateModel(
            name="Beneficiary",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("registration_date", models.DateField()),
                (
                    "status",
                    models.CharField(
                        choices=[
                            ("aktif", "Aktif"),
                            ("tidak_aktif", "Tidak Aktif"),
                            ("lulus", "Lulus"),
                            ("meninggal", "Meninggal"),
                            ("pindah", "Pindah"),
                        ],
                        default="aktif",
                        max_length=20,
                    ),
                ),
                (
                    "economic_status",
                    models.CharField(
                        choices=[
                            ("miskin", "Miskin"),
                            ("sangat_miskin", "Sangat Miskin"),
                            ("rentan_miskin", "Rentan Miskin"),
                            ("tidak_miskin", "Tidak Miskin"),
                        ],
                        max_length=20,
                    ),
                ),
                (
                    "monthly_income",
                    models.DecimalField(
                        blank=True, decimal_places=2, max_digits=12, null=True
                    ),
                ),
                ("family_members_count", models.PositiveIntegerField(default=1)),
                ("house_condition", models.TextField(blank=True)),
                ("special_needs", models.TextField(blank=True)),
                ("verification_date", models.DateField(blank=True, null=True)),
                ("notes", models.TextField(blank=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
            ],
            options={
                "verbose_name": "Penerima Bantuan",
                "verbose_name_plural": "Penerima Bantuan",
            },
        ),
        migrations.CreateModel(
            name="BeneficiaryCategory",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("name", models.CharField(max_length=100, unique=True)),
                ("description", models.TextField(blank=True)),
                ("criteria", models.TextField(blank=True)),
                ("is_active", models.BooleanField(default=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
            ],
            options={
                "verbose_name": "Kategori Penerima Bantuan",
                "verbose_name_plural": "Kategori Penerima Bantuan",
            },
        ),
        migrations.CreateModel(
            name="LetterTemplate",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("nama", models.CharField(max_length=200)),
                ("deskripsi", models.TextField(blank=True)),
                (
                    "content_template",
                    models.TextField(
                        help_text="Template konten surat dengan variabel [NAMA_VARIABEL]"
                    ),
                ),
                (
                    "variables",
                    models.TextField(
                        default="[]",
                        help_text="Daftar variabel yang tersedia dalam template dalam format JSON",
                    ),
                ),
                ("is_active", models.BooleanField(default=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "created_by",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="beneficiaries_letter_template_created",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "verbose_name": "Template Surat",
                "verbose_name_plural": "Template Surat",
                "ordering": ["nama"],
            },
        ),
        migrations.CreateModel(
            name="TarafKehidupan",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "taraf_ekonomi",
                    models.CharField(
                        choices=[
                            ("sangat_miskin", "Sangat Miskin"),
                            ("miskin", "Miskin"),
                            ("rentan_miskin", "Rentan Miskin"),
                            ("hampir_miskin", "Hampir Miskin"),
                            ("tidak_miskin", "Tidak Miskin"),
                        ],
                        max_length=20,
                    ),
                ),
                (
                    "pendapatan_bulanan",
                    models.DecimalField(
                        blank=True, decimal_places=2, max_digits=12, null=True
                    ),
                ),
                (
                    "pendidikan_terakhir",
                    models.CharField(
                        choices=[
                            ("tidak_sekolah", "Tidak Sekolah"),
                            ("sd", "SD/Sederajat"),
                            ("smp", "SMP/Sederajat"),
                            ("sma", "SMA/Sederajat"),
                            ("diploma", "Diploma"),
                            ("sarjana", "Sarjana"),
                            ("pascasarjana", "Pascasarjana"),
                        ],
                        max_length=20,
                    ),
                ),
                (
                    "pekerjaan",
                    models.CharField(
                        choices=[
                            ("tidak_bekerja", "Tidak Bekerja"),
                            ("petani", "Petani"),
                            ("nelayan", "Nelayan"),
                            ("pedagang", "Pedagang"),
                            ("buruh", "Buruh"),
                            ("pns", "PNS"),
                            ("swasta", "Karyawan Swasta"),
                            ("wiraswasta", "Wiraswasta"),
                            ("lainnya", "Lainnya"),
                        ],
                        max_length=20,
                    ),
                ),
                ("jumlah_tanggungan", models.PositiveIntegerField(default=0)),
                (
                    "kondisi_rumah",
                    models.CharField(
                        choices=[
                            ("permanen", "Permanen"),
                            ("semi_permanen", "Semi Permanen"),
                            ("tidak_permanen", "Tidak Permanen"),
                        ],
                        max_length=20,
                    ),
                ),
                (
                    "luas_rumah",
                    models.DecimalField(
                        blank=True,
                        decimal_places=2,
                        help_text="Dalam meter persegi",
                        max_digits=8,
                        null=True,
                    ),
                ),
                (
                    "kepemilikan_rumah",
                    models.CharField(default="milik_sendiri", max_length=50),
                ),
                ("sumber_air", models.CharField(blank=True, max_length=100)),
                ("jenis_jamban", models.CharField(blank=True, max_length=100)),
                ("sumber_penerangan", models.CharField(blank=True, max_length=100)),
                ("bahan_bakar_memasak", models.CharField(blank=True, max_length=100)),
                (
                    "kepemilikan_aset",
                    models.TextField(blank=True, help_text="Daftar aset yang dimiliki"),
                ),
                ("catatan_khusus", models.TextField(blank=True)),
                ("tanggal_survei", models.DateField()),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "person",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="taraf_kehidupan",
                        to="references.penduduk",
                    ),
                ),
                (
                    "surveyor",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "verbose_name": "Data Taraf Kehidupan",
                "verbose_name_plural": "Data Taraf Kehidupan",
                "ordering": ["-tanggal_survei"],
            },
        ),
        migrations.CreateModel(
            name="Surat",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("nomor_surat", models.CharField(max_length=100, unique=True)),
                ("perihal", models.CharField(max_length=200)),
                (
                    "jenis",
                    models.CharField(
                        choices=[
                            ("keterangan", "Surat Keterangan"),
                            ("pengantar", "Surat Pengantar"),
                            ("rekomendasi", "Surat Rekomendasi"),
                            ("undangan", "Surat Undangan"),
                            ("pemberitahuan", "Surat Pemberitahuan"),
                            ("permohonan", "Surat Permohonan"),
                            ("keputusan", "Surat Keputusan"),
                            ("lainnya", "Lainnya"),
                        ],
                        max_length=20,
                    ),
                ),
                ("penerima", models.CharField(max_length=200)),
                ("alamat_penerima", models.TextField(blank=True)),
                (
                    "content",
                    models.TextField(help_text="Konten surat yang sudah diisi"),
                ),
                (
                    "variables_data",
                    models.TextField(
                        default="{}",
                        help_text="Data variabel yang diisi dalam format JSON",
                    ),
                ),
                ("tanggal_surat", models.DateField()),
                (
                    "status",
                    models.CharField(
                        choices=[
                            ("draft", "Draft"),
                            ("pending", "Menunggu"),
                            ("approved", "Disetujui"),
                            ("completed", "Selesai"),
                            ("rejected", "Ditolak"),
                        ],
                        default="draft",
                        max_length=20,
                    ),
                ),
                (
                    "file_pdf",
                    models.FileField(blank=True, null=True, upload_to="surat/pdf/"),
                ),
                ("catatan", models.TextField(blank=True)),
                ("approved_at", models.DateTimeField(blank=True, null=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "approved_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="beneficiaries_approved_letters",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "created_by",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="beneficiaries_surat_created",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "template",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to="beneficiaries.lettertemplate",
                    ),
                ),
            ],
            options={
                "verbose_name": "Surat",
                "verbose_name_plural": "Surat",
                "ordering": ["-tanggal_surat"],
            },
        ),
        migrations.CreateModel(
            name="DokumenGampong",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("nama_dokumen", models.CharField(max_length=200)),
                ("slug", models.SlugField(blank=True, max_length=250, unique=True)),
                (
                    "kategori",
                    models.CharField(
                        choices=[
                            ("administrasi", "Administrasi"),
                            ("keuangan", "Keuangan"),
                            ("pembangunan", "Pembangunan"),
                            ("sosial", "Sosial"),
                            ("kesehatan", "Kesehatan"),
                            ("pendidikan", "Pendidikan"),
                            ("keamanan", "Keamanan"),
                            ("lingkungan", "Lingkungan"),
                            ("ekonomi", "Ekonomi"),
                            ("budaya", "Budaya"),
                            ("lainnya", "Lainnya"),
                        ],
                        max_length=20,
                    ),
                ),
                ("deskripsi", models.TextField(blank=True)),
                (
                    "file_dokumen",
                    models.FileField(
                        upload_to=beneficiaries.models.dokumen_upload_path
                    ),
                ),
                (
                    "ukuran_file",
                    models.PositiveIntegerField(
                        blank=True, help_text="Ukuran file dalam bytes", null=True
                    ),
                ),
                ("tipe_file", models.CharField(blank=True, max_length=50)),
                ("nomor_dokumen", models.CharField(blank=True, max_length=100)),
                ("tanggal_dokumen", models.DateField()),
                (
                    "status",
                    models.CharField(
                        choices=[
                            ("draft", "Draft"),
                            ("review", "Review"),
                            ("approved", "Disetujui"),
                            ("archived", "Diarsipkan"),
                        ],
                        default="draft",
                        max_length=20,
                    ),
                ),
                (
                    "tags",
                    models.CharField(
                        blank=True, help_text="Pisahkan dengan koma", max_length=500
                    ),
                ),
                (
                    "is_public",
                    models.BooleanField(
                        default=False, help_text="Dapat diakses publik"
                    ),
                ),
                ("download_count", models.PositiveIntegerField(default=0)),
                ("approved_at", models.DateTimeField(blank=True, null=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "approved_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        related_name="approved_documents",
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "uploaded_by",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "verbose_name": "Dokumen Gampong",
                "verbose_name_plural": "Dokumen Gampong",
                "ordering": ["-created_at"],
            },
        ),
        migrations.CreateModel(
            name="DataBantuan",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "jenis_bantuan",
                    models.CharField(
                        choices=[
                            ("blt", "Bantuan Langsung Tunai"),
                            ("bpnt", "Bantuan Pangan Non Tunai"),
                            ("pkh", "Program Keluarga Harapan"),
                            ("pip", "Program Indonesia Pintar"),
                            ("kis", "Kartu Indonesia Sehat"),
                            ("bansos", "Bantuan Sosial"),
                            ("banpres", "Bantuan Presiden"),
                            ("banprov", "Bantuan Provinsi"),
                            ("bankab", "Bantuan Kabupaten"),
                            ("bangam", "Bantuan Gampong"),
                            ("lainnya", "Lainnya"),
                        ],
                        max_length=20,
                    ),
                ),
                ("nama_program", models.CharField(max_length=200)),
                ("nomor_kartu", models.CharField(blank=True, max_length=100)),
                (
                    "nilai_bantuan",
                    models.DecimalField(
                        blank=True, decimal_places=2, max_digits=12, null=True
                    ),
                ),
                ("periode_bantuan", models.CharField(blank=True, max_length=100)),
                ("tanggal_mulai", models.DateField()),
                ("tanggal_berakhir", models.DateField(blank=True, null=True)),
                (
                    "status",
                    models.CharField(
                        choices=[
                            ("aktif", "Aktif"),
                            ("nonaktif", "Non Aktif"),
                            ("pending", "Menunggu"),
                            ("ditolak", "Ditolak"),
                            ("selesai", "Selesai"),
                        ],
                        default="aktif",
                        max_length=20,
                    ),
                ),
                ("sumber_dana", models.CharField(blank=True, max_length=100)),
                ("instansi_pemberi", models.CharField(blank=True, max_length=200)),
                ("syarat_penerima", models.TextField(blank=True)),
                ("dokumen_pendukung", models.TextField(blank=True)),
                ("catatan", models.TextField(blank=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "input_by",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
                (
                    "person",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="data_bantuan",
                        to="references.penduduk",
                    ),
                ),
            ],
            options={
                "verbose_name": "Data Bantuan",
                "verbose_name_plural": "Data Bantuan",
                "ordering": ["-tanggal_mulai"],
            },
        ),
        migrations.CreateModel(
            name="Berita",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("title", models.CharField(max_length=200)),
                ("slug", models.SlugField(blank=True, max_length=250, unique=True)),
                (
                    "excerpt",
                    models.TextField(blank=True, help_text="Ringkasan singkat berita"),
                ),
                ("content", models.TextField()),
                (
                    "featured_image",
                    models.ImageField(
                        blank=True, null=True, upload_to="berita/images/"
                    ),
                ),
                (
                    "kategori",
                    models.CharField(
                        choices=[
                            ("pengumuman", "Pengumuman"),
                            ("kegiatan", "Kegiatan"),
                            ("pembangunan", "Pembangunan"),
                            ("sosial", "Sosial"),
                            ("kesehatan", "Kesehatan"),
                            ("pendidikan", "Pendidikan"),
                            ("ekonomi", "Ekonomi"),
                            ("lainnya", "Lainnya"),
                        ],
                        max_length=20,
                    ),
                ),
                (
                    "status",
                    models.CharField(
                        choices=[
                            ("draft", "Draft"),
                            ("published", "Dipublikasi"),
                            ("archived", "Diarsipkan"),
                        ],
                        default="draft",
                        max_length=20,
                    ),
                ),
                (
                    "tags",
                    models.CharField(
                        blank=True, help_text="Pisahkan dengan koma", max_length=500
                    ),
                ),
                (
                    "is_featured",
                    models.BooleanField(default=False, help_text="Berita unggulan"),
                ),
                ("allow_comments", models.BooleanField(default=True)),
                ("views_count", models.PositiveIntegerField(default=0)),
                ("published_at", models.DateTimeField(blank=True, null=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "author",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "verbose_name": "Berita",
                "verbose_name_plural": "Berita",
                "ordering": ["-created_at"],
            },
        ),
        migrations.CreateModel(
            name="BeneficiaryVerification",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("verification_date", models.DateField()),
                (
                    "verification_status",
                    models.CharField(
                        choices=[
                            ("pending", "Menunggu Verifikasi"),
                            ("verified", "Terverifikasi"),
                            ("rejected", "Ditolak"),
                            ("need_update", "Perlu Update Data"),
                        ],
                        max_length=20,
                    ),
                ),
                ("verification_notes", models.TextField(blank=True)),
                ("documents_checked", models.TextField(blank=True)),
                ("field_visit_conducted", models.BooleanField(default=False)),
                ("field_visit_notes", models.TextField(blank=True)),
                ("next_verification_date", models.DateField(blank=True, null=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "beneficiary",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="verifications",
                        to="beneficiaries.beneficiary",
                    ),
                ),
                (
                    "verifier",
                    models.ForeignKey(
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "verbose_name": "Verifikasi Penerima Bantuan",
                "verbose_name_plural": "Verifikasi Penerima Bantuan",
                "ordering": ["-verification_date"],
            },
        ),
        migrations.AddField(
            model_name="beneficiary",
            name="category",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to="beneficiaries.beneficiarycategory",
            ),
        ),
        migrations.AddField(
            model_name="beneficiary",
            name="person",
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                related_name="beneficiary_records",
                to="references.penduduk",
            ),
        ),
        migrations.AddField(
            model_name="beneficiary",
            name="registered_by",
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name="beneficiaries_registered",
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AlterUniqueTogether(
            name="beneficiary",
            unique_together={("person", "category")},
        ),
        migrations.CreateModel(
            name="AidDistribution",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                ("distribution_date", models.DateField(blank=True, null=True)),
                (
                    "amount_received",
                    models.DecimalField(decimal_places=2, max_digits=12),
                ),
                (
                    "status",
                    models.CharField(
                        choices=[
                            ("pending", "Menunggu"),
                            ("approved", "Disetujui"),
                            ("distributed", "Sudah Disalurkan"),
                            ("rejected", "Ditolak"),
                        ],
                        default="pending",
                        max_length=20,
                    ),
                ),
                ("receipt_number", models.CharField(blank=True, max_length=100)),
                ("notes", models.TextField(blank=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "aid",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="distributions",
                        to="beneficiaries.aid",
                    ),
                ),
                (
                    "beneficiary",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="aid_received",
                        to="beneficiaries.beneficiary",
                    ),
                ),
                (
                    "distributed_by",
                    models.ForeignKey(
                        blank=True,
                        null=True,
                        on_delete=django.db.models.deletion.SET_NULL,
                        to=settings.AUTH_USER_MODEL,
                    ),
                ),
            ],
            options={
                "verbose_name": "Distribusi Bantuan",
                "verbose_name_plural": "Distribusi Bantuan",
                "unique_together": {("aid", "beneficiary")},
            },
        ),
    ]
