# Generated by Django 5.0.2 on 2025-08-12 13:42

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


class Migration(migrations.Migration):

    dependencies = [
        ('customers', '0009_customer_company_name_and_more'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='MarketingReportTemplate',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('section', models.CharField(help_text='Which section of the report this template applies to', max_length=50)),
                ('template_content', models.TextField()),
                ('is_active', models.BooleanField(default=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ['section', 'name'],
            },
        ),
        migrations.CreateModel(
            name='MarketingWeeklyReport',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('week_starting', models.DateField(help_text='Monday of the reporting week')),
                ('week_ending', models.DateField(help_text='Sunday of the reporting week')),
                ('status', models.CharField(choices=[('draft', 'Draft'), ('submitted', 'Submitted'), ('reviewed', 'Reviewed'), ('approved', 'Approved')], default='draft', max_length=20)),
                ('customers_contacted', models.IntegerField(default=0, help_text='Number of customers/prospects contacted')),
                ('site_visits_conducted', models.IntegerField(default=0, help_text='Number of physical site visits')),
                ('demos_conducted', models.IntegerField(default=0, help_text='Number of service demonstrations')),
                ('new_leads_generated', models.IntegerField(default=0)),
                ('qualified_leads', models.IntegerField(default=0)),
                ('leads_converted', models.IntegerField(default=0)),
                ('customer_feedback_summary', models.TextField(blank=True, help_text='Summary of customer feedback, concerns, and suggestions')),
                ('competitor_activities', models.TextField(blank=True, help_text='Observed competitor activities, pricing, or strategies')),
                ('market_trends_observed', models.TextField(blank=True, help_text='New market trends or customer behavior patterns')),
                ('service_improvement_recommendations', models.TextField(blank=True, help_text='Suggestions for improving services based on customer feedback')),
                ('pricing_recommendations', models.TextField(blank=True, help_text='Pricing strategy suggestions based on market conditions')),
                ('marketing_strategy_recommendations', models.TextField(blank=True, help_text='Marketing approach improvements or new strategies')),
                ('challenges_faced', models.TextField(blank=True, help_text='Main challenges encountered during the week')),
                ('solutions_implemented', models.TextField(blank=True, help_text='Solutions tried or implemented for challenges')),
                ('next_week_targets', models.TextField(blank=True, help_text='Planned activities and targets for next week')),
                ('support_needed', models.TextField(blank=True, help_text='Support or resources needed from management')),
                ('reviewed_at', models.DateTimeField(blank=True, null=True)),
                ('review_comments', models.TextField(blank=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('marketing_staff', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='marketing_reports', to=settings.AUTH_USER_MODEL)),
                ('reviewed_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='reviewed_marketing_reports', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ['-week_starting', 'marketing_staff__first_name'],
                'unique_together': {('marketing_staff', 'week_starting')},
            },
        ),
        migrations.CreateModel(
            name='MarketingLeadInteraction',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('interaction_date', models.DateField()),
                ('interaction_type', models.CharField(choices=[('phone_call', 'Phone Call'), ('site_visit', 'Site Visit'), ('email', 'Email'), ('demo', 'Service Demo'), ('follow_up', 'Follow Up'), ('complaint_resolution', 'Complaint Resolution'), ('other', 'Other')], max_length=30)),
                ('lead_name', models.CharField(max_length=200)),
                ('lead_phone', models.CharField(max_length=15)),
                ('lead_location', models.CharField(max_length=200)),
                ('outcome', models.CharField(choices=[('positive', 'Positive'), ('neutral', 'Neutral'), ('negative', 'Negative'), ('converted', 'Converted to Customer'), ('lost', 'Lost Lead')], max_length=20)),
                ('notes', models.TextField(help_text='Detailed notes about the interaction')),
                ('estimated_value', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True)),
                ('follow_up_required', models.BooleanField(default=False)),
                ('follow_up_date', models.DateField(blank=True, null=True)),
                ('follow_up_notes', models.TextField(blank=True)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('existing_customer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='customers.customer')),
                ('service_interested', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='customers.service')),
                ('weekly_report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='lead_interactions', to='customers.marketingweeklyreport')),
            ],
            options={
                'ordering': ['-interaction_date'],
            },
        ),
    ]
