# Generated by Django 5.2.11 on 2026-04-18 14:30

import django.core.validators
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('expat_life', '0012_package_affiliate_fee_percentage_and_more'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='PlatformFeeSettings',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('dating_partner_confirmation_fee_usd', models.DecimalField(decimal_places=2, default=50, help_text='Default confirmation fee for dating partners.', max_digits=10, validators=[django.core.validators.MinValueValidator(0)])),
                ('foreigner_featured_profile_fee_usd', models.DecimalField(decimal_places=2, default=10, help_text='Default premium / featured profile fee for foreigners.', max_digits=10, validators=[django.core.validators.MinValueValidator(0)])),
                ('dating_partner_featured_profile_fee_usd', models.DecimalField(decimal_places=2, default=10, help_text='Default premium / featured profile fee for dating partners.', max_digits=10, validators=[django.core.validators.MinValueValidator(0)])),
                ('service_partner_featured_account_fee_usd', models.DecimalField(decimal_places=2, default=10, help_text='Default premium / featured account fee for service partners such as job seekers, assistants, helpers, etc.', max_digits=10, validators=[django.core.validators.MinValueValidator(0)])),
                ('rental_owner_monthly_fee_percentage', models.DecimalField(decimal_places=2, default=10, help_text="Monthly fee percentage charged from the rental owner's monthly rental amount.", max_digits=5, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100)])),
                ('is_active', models.BooleanField(default=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Platform Fee Settings',
                'verbose_name_plural': 'Platform Fee Settings',
            },
        ),
        migrations.CreateModel(
            name='UserPayableItem',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('profile_type', models.CharField(choices=[('foreigner', 'Foreigner'), ('dating_partner', 'Dating Partner'), ('service_partner', 'Service Partner'), ('rental_owner', 'Rental Owner')], max_length=30)),
                ('payment_for', models.CharField(choices=[('account_confirmation', 'Account Confirmation'), ('one_time_service_fee', 'One-Time Service Fee'), ('featured_profile_fee', 'Featured / Premium Profile Fee'), ('rental_deposit', 'Rental Deposit'), ('monthly_rental', 'Monthly Rental'), ('furniture_rental', 'Furniture Rental'), ('furniture_purchase', 'Furniture Purchase'), ('dating_confirmation', 'Dating Confirmation'), ('service_partner_featured', 'Service Partner Featured Fee'), ('dating_partner_featured', 'Dating Partner Featured Fee'), ('rental_owner_commission', 'Rental Owner Commission'), ('other', 'Other')], max_length=50)),
                ('title', models.CharField(max_length=255)),
                ('description', models.TextField(blank=True)),
                ('amount_state', models.CharField(choices=[('estimated', 'Estimated'), ('tentative', 'Tentative'), ('confirmed', 'Confirmed'), ('not_decided', 'Not Yet Decided')], default='estimated', max_length=20)),
                ('amount_usd', models.DecimalField(decimal_places=2, default=0, max_digits=12, validators=[django.core.validators.MinValueValidator(0)])),
                ('payment_status', models.CharField(choices=[('upcoming', 'Upcoming'), ('due', 'Due'), ('paid', 'Paid'), ('cancelled', 'Cancelled'), ('waived', 'Waived'), ('expired', 'Expired')], default='upcoming', max_length=20)),
                ('is_active', models.BooleanField(default=True)),
                ('is_optional', models.BooleanField(default=False)),
                ('due_date', models.DateField(blank=True, null=True)),
                ('effective_from', models.DateField(blank=True, null=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('paid_at', models.DateTimeField(blank=True, null=True)),
                ('notes', models.TextField(blank=True)),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='payable_items', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ['payment_status', 'due_date', 'created_at'],
            },
        ),
    ]
