mirror of
https://github.com/thecyberlearn/quantum-ai-v2.git
synced 2026-08-18 16:32:58 +00:00
New features: - Job Posting Generator (4.00 AED): Creates professional job postings with detailed requirements, company culture integration, and SEO optimization - Social Ads Generator (7.00 AED): Creates compelling social media advertisements with platform-optimized copy and emoji support Technical improvements: - Individual agent architecture with namespaced templates - Real-time AJAX form submission without page reload - Wallet deduction only after successful processing - Platform-specific optimization (job posting: 6 platforms, social ads: 6 platforms) - Copy/download functionality for generated content - Comprehensive form validation and error handling Database changes: - Job posting specific fields: job_title, company_name, seniority_level, contract_type, location, language - Social ads specific fields: description, social_platform, include_emoji, language - Response models with structured content fields 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
62 lines
3.6 KiB
Python
62 lines
3.6 KiB
Python
# Generated by Django 5.2.4 on 2025-07-10 12:33
|
|
|
|
import django.db.models.deletion
|
|
import uuid
|
|
from django.conf import settings
|
|
from django.db import migrations, models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
initial = True
|
|
|
|
dependencies = [
|
|
('agent_base', '0001_initial'),
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='SocialAdsGeneratorRequest',
|
|
fields=[
|
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
|
('status', models.CharField(choices=[('pending', 'Pending'), ('processing', 'Processing'), ('completed', 'Completed'), ('failed', 'Failed')], default='pending', max_length=20)),
|
|
('cost', models.DecimalField(decimal_places=2, max_digits=10)),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('processed_at', models.DateTimeField(blank=True, null=True)),
|
|
('description', models.TextField(help_text='Product/service description')),
|
|
('social_platform', models.CharField(choices=[('facebook', 'Facebook'), ('instagram', 'Instagram'), ('twitter', 'Twitter'), ('linkedin', 'LinkedIn'), ('tiktok', 'TikTok'), ('youtube', 'YouTube')], default='facebook', max_length=20)),
|
|
('include_emoji', models.BooleanField(default=False, help_text='Include emojis in ad copy')),
|
|
('language', models.CharField(choices=[('English', 'English'), ('Arabic', 'Arabic (العربية)'), ('Spanish', 'Spanish (Español)'), ('French', 'French (Français)'), ('German', 'German (Deutsch)'), ('Chinese', 'Chinese (中文)')], default='English', max_length=20)),
|
|
('agent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='agent_base.baseagent')),
|
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
|
],
|
|
options={
|
|
'verbose_name': 'Social Ads Generator Request',
|
|
'verbose_name_plural': 'Social Ads Generator Requests',
|
|
'db_table': 'social_ads_generator_requests',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='SocialAdsGeneratorResponse',
|
|
fields=[
|
|
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
|
('success', models.BooleanField(default=False)),
|
|
('error_message', models.TextField(blank=True)),
|
|
('processing_time', models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True)),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
('ad_copy', models.TextField(blank=True, help_text='Generated ad copy')),
|
|
('hashtags', models.TextField(blank=True, help_text='Suggested hashtags')),
|
|
('targeting_suggestions', models.TextField(blank=True, help_text='Audience targeting suggestions')),
|
|
('formatted_ad', models.TextField(blank=True, help_text='Formatted ad content')),
|
|
('raw_response', models.JSONField(blank=True, default=dict)),
|
|
('request', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='response', to='social_ads_generator.socialadsgeneratorrequest')),
|
|
],
|
|
options={
|
|
'verbose_name': 'Social Ads Generator Response',
|
|
'verbose_name_plural': 'Social Ads Generator Responses',
|
|
'db_table': 'social_ads_generator_responses',
|
|
},
|
|
),
|
|
]
|