# Generated by Django 5.2.6 on 2025-09-06 17:37 import datetime import django.core.validators import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Platform', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(help_text="Platform name (e.g., 'LinkedIn Business')", max_length=100)), ('platform_type', models.CharField(choices=[('linkedin', 'LinkedIn'), ('youtube', 'YouTube'), ('blog', 'Blog'), ('instagram', 'Instagram'), ('twitter', 'Twitter'), ('facebook', 'Facebook'), ('tiktok', 'TikTok'), ('podcast', 'Podcast'), ('newsletter', 'Newsletter'), ('other', 'Other')], max_length=20)), ('description', models.TextField(blank=True, help_text="Brief description of this platform's purpose")), ('status', models.CharField(choices=[('active', 'Active'), ('inactive', 'Inactive'), ('planning', 'Planning'), ('paused', 'Paused')], default='active', max_length=20)), ('primary_content_type', models.CharField(help_text="Main type of content for this platform (e.g., 'Articles', 'Videos', 'Posts')", max_length=100)), ('target_audience', models.CharField(blank=True, help_text='Target audience for this platform', max_length=200)), ('posting_frequency', models.CharField(blank=True, help_text="How often content is posted (e.g., 'Daily', '3x per week')", max_length=100)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], options={ 'ordering': ['name'], }, ), migrations.CreateModel( name='ContentDeliverable', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(help_text='Content title or brief description', max_length=200)), ('content_type', models.CharField(choices=[('article', 'Article'), ('video', 'Video'), ('post', 'Social Media Post'), ('story', 'Story'), ('reel', 'Reel/Short Video'), ('carousel', 'Carousel'), ('infographic', 'Infographic'), ('podcast', 'Podcast Episode'), ('newsletter', 'Newsletter'), ('other', 'Other')], max_length=20)), ('status', models.CharField(choices=[('committed', 'Committed'), ('drafted', 'Drafted'), ('published', 'Published'), ('cancelled', 'Cancelled')], default='committed', max_length=20)), ('description', models.TextField(blank=True, help_text='Detailed description of the content')), ('completion_percentage', models.IntegerField(default=0, help_text='Completion progress (0-100%)', validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100)])), ('target_date', models.DateField(blank=True, help_text='Target publication date', null=True)), ('actual_date', models.DateField(blank=True, help_text='Actual publication date', null=True)), ('url', models.URLField(blank=True, help_text='URL of published content')), ('notes', models.TextField(blank=True, help_text='Additional notes or comments')), ('tags', models.CharField(blank=True, help_text="Comma-separated tags (e.g., 'marketing, tutorial, beginner')", max_length=200)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('platform', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='dashboard.platform')), ], options={ 'ordering': ['-created_at'], }, ), migrations.CreateModel( name='Strategy', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(help_text='Strategy title', max_length=200)), ('objective', models.TextField(help_text='What you want to achieve')), ('tactics', models.TextField(help_text='How you plan to achieve the objective')), ('actions', models.TextField(help_text='Specific actions to implement the tactics')), ('control', models.TextField(blank=True, help_text="How you'll measure success and control/adjust the strategy")), ('priority', models.IntegerField(default=1, help_text='Priority level (1 = highest, 5 = lowest)', validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(5)])), ('start_date', models.DateField(default=datetime.date.today)), ('end_date', models.DateField(blank=True, null=True)), ('is_active', models.BooleanField(default=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('platform', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='strategies', to='dashboard.platform')), ], options={ 'verbose_name_plural': 'strategies', 'ordering': ['priority', '-created_at'], }, ), ]