feat(partner-portal): Sprint 1 — partner-me settings endpoints
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>
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
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),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user