# Generated by Django 6.0.4 on 2026-06-06 02:55

import apps.administrations.models
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Announcement',
            fields=[
                ('id', models.UUIDField(default=apps.administrations.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('title', models.CharField(max_length=255)),
                ('content', models.TextField()),
                ('priority', models.CharField(choices=[('info', 'Info'), ('important', 'Important'), ('urgent', 'Urgent')], default='info', max_length=20)),
                ('is_pinned', models.BooleanField(default=False)),
                ('valid_from', models.DateTimeField()),
                ('valid_until', models.DateTimeField(blank=True, null=True)),
                ('attachments', models.JSONField(default=list)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'db_table': 'announcements',
                'ordering': ['-is_pinned', '-created_at'],
            },
        ),
        migrations.CreateModel(
            name='CarBooking',
            fields=[
                ('id', models.UUIDField(default=apps.administrations.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('vehicle_name', models.CharField(blank=True, max_length=100)),
                ('purpose', models.TextField()),
                ('start_datetime', models.DateTimeField()),
                ('end_datetime', models.DateTimeField()),
                ('destination', models.CharField(max_length=255)),
                ('number_of_passengers', models.IntegerField(default=1)),
                ('status', models.CharField(choices=[('pending', 'Pending'), ('approved', 'Approved'), ('rejected', 'Rejected'), ('completed', 'Completed'), ('cancelled', 'Cancelled')], default='pending', max_length=20)),
                ('notes', models.TextField(blank=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'db_table': 'car_bookings',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='DocumentRequest',
            fields=[
                ('id', models.UUIDField(default=apps.administrations.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('document_type', models.CharField(max_length=100)),
                ('purpose', models.TextField()),
                ('status', models.CharField(choices=[('pending', 'Pending'), ('in_progress', 'In Progress'), ('ready', 'Ready'), ('rejected', 'Rejected')], default='pending', max_length=20)),
                ('notes', models.TextField(blank=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'db_table': 'document_requests',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='InternalGuide',
            fields=[
                ('id', models.UUIDField(default=apps.administrations.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('title', models.CharField(max_length=255)),
                ('category', models.CharField(max_length=100)),
                ('content', models.TextField()),
                ('tags', models.JSONField(default=list)),
                ('attachments', models.JSONField(default=list)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'db_table': 'internal_guides',
                'ordering': ['title'],
            },
        ),
        migrations.CreateModel(
            name='LetterNumber',
            fields=[
                ('id', models.UUIDField(default=apps.administrations.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('prefix', models.CharField(choices=[('SURAT', 'Surat'), ('SK', 'Surat Keputusan'), ('SP', 'Surat Pemberitahuan'), ('BA', 'Berita Acara')], max_length=10)),
                ('year', models.IntegerField()),
                ('month', models.IntegerField()),
                ('sequence', models.IntegerField()),
                ('subject', models.CharField(max_length=255)),
                ('recipient', models.TextField()),
                ('sender', models.CharField(max_length=100)),
                ('date', models.DateField()),
                ('file', models.FileField(blank=True, null=True, upload_to='letter_numbers/%Y/%m/')),
                ('notes', models.TextField(blank=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'db_table': 'letter_numbers',
                'ordering': ['-date'],
            },
        ),
        migrations.CreateModel(
            name='PaymentRequest',
            fields=[
                ('id', models.UUIDField(default=apps.administrations.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('title', models.CharField(max_length=255)),
                ('description', models.TextField()),
                ('amount', models.DecimalField(decimal_places=2, max_digits=12)),
                ('payee', models.CharField(max_length=255)),
                ('bank_account', models.CharField(blank=True, max_length=100)),
                ('status', models.CharField(choices=[('pending', 'Pending'), ('approved', 'Approved'), ('rejected', 'Rejected'), ('paid', 'Paid')], default='pending', max_length=20)),
                ('paid_at', models.DateTimeField(blank=True, null=True)),
                ('notes', models.TextField(blank=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'db_table': 'payment_requests',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='Reimbursement',
            fields=[
                ('id', models.UUIDField(default=apps.administrations.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('title', models.CharField(max_length=255)),
                ('description', models.TextField()),
                ('amount', models.DecimalField(decimal_places=2, max_digits=12)),
                ('receipts', models.JSONField(default=list)),
                ('status', models.CharField(choices=[('pending', 'Pending'), ('approved', 'Approved'), ('rejected', 'Rejected'), ('paid', 'Paid')], default='pending', max_length=20)),
                ('paid_at', models.DateTimeField(blank=True, null=True)),
                ('notes', models.TextField(blank=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'db_table': 'reimbursements',
                'ordering': ['-created_at'],
            },
        ),
        migrations.CreateModel(
            name='ReimbursementReceipt',
            fields=[
                ('id', models.UUIDField(default=apps.administrations.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('file', models.FileField(upload_to='reimbursement_receipts/')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'db_table': 'reimbursement_receipts',
                'ordering': ['created_at'],
            },
        ),
        migrations.CreateModel(
            name='SOP',
            fields=[
                ('id', models.UUIDField(default=apps.administrations.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('code', models.CharField(max_length=50, unique=True)),
                ('title', models.CharField(max_length=255)),
                ('category', models.CharField(max_length=100)),
                ('content', models.TextField()),
                ('version', models.CharField(default='1.0', max_length=20)),
                ('status', models.CharField(choices=[('draft', 'Draft'), ('review', 'Review'), ('active', 'Active'), ('obsolete', 'Obsolete')], db_index=True, default='draft', max_length=20)),
                ('tags', models.JSONField(blank=True, default=list)),
                ('effective_date', models.DateField()),
                ('attachments', models.JSONField(default=list)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'db_table': 'sops',
                'ordering': ['code'],
            },
        ),
        migrations.CreateModel(
            name='SOPVersion',
            fields=[
                ('id', models.UUIDField(default=apps.administrations.models.uuid7, editable=False, primary_key=True, serialize=False)),
                ('version', models.CharField(max_length=20)),
                ('content', models.TextField()),
                ('effective_date', models.DateField()),
                ('change_note', models.CharField(blank=True, max_length=500)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'db_table': 'sop_versions',
                'ordering': ['-created_at'],
            },
        ),
    ]
