Add 4 self-service endpoints under /api/v1/partners/me/: - GET/PUT /partners/me/profile/ → name, email, phone, website, bio - GET/PUT /partners/me/notifications/ → 4 boolean notification prefs - GET/PUT /partners/me/payout/ → bank account + payout schedule - POST /partners/me/change-password/ → current+new password change Model changes (partner/models.py + migration 0002): - Partner.bio TextField - Partner.payout_* fields (holder name, account number, IFSC, bank name, schedule) - Partner.notif_* boolean fields (new_booking, event_status, payout_update, weekly_report) Auth: simplejwt Bearer token (same as all admin_api views). Role guard: _require_partner() enforces partner/partner_manager/partner_staff and verifies user.partner FK is non-null. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('partner', '0001_initial'),
|
|
]
|
|
|
|
operations = [
|
|
# Profile extras
|
|
migrations.AddField(
|
|
model_name='partner',
|
|
name='bio',
|
|
field=models.TextField(blank=True, null=True),
|
|
),
|
|
|
|
# Payout settings
|
|
migrations.AddField(
|
|
model_name='partner',
|
|
name='payout_account_holder_name',
|
|
field=models.CharField(blank=True, max_length=250, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='partner',
|
|
name='payout_account_number',
|
|
field=models.CharField(blank=True, max_length=50, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='partner',
|
|
name='payout_ifsc_code',
|
|
field=models.CharField(blank=True, max_length=20, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='partner',
|
|
name='payout_bank_name',
|
|
field=models.CharField(blank=True, max_length=250, null=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='partner',
|
|
name='payout_schedule',
|
|
field=models.CharField(
|
|
choices=[('weekly', 'Weekly'), ('biweekly', 'Bi-weekly'), ('monthly', 'Monthly')],
|
|
default='monthly',
|
|
max_length=20,
|
|
),
|
|
),
|
|
|
|
# Notification preferences
|
|
migrations.AddField(
|
|
model_name='partner',
|
|
name='notif_new_booking',
|
|
field=models.BooleanField(default=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='partner',
|
|
name='notif_event_status',
|
|
field=models.BooleanField(default=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='partner',
|
|
name='notif_payout_update',
|
|
field=models.BooleanField(default=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='partner',
|
|
name='notif_weekly_report',
|
|
field=models.BooleanField(default=False),
|
|
),
|
|
]
|