Initial commit: Django backend with Campaign, ContactUs, and Composition APIs

This commit is contained in:
Shayan Azadi
2025-12-17 15:58:07 +03:30
commit 3e100bae99
23 changed files with 1454 additions and 0 deletions

View File

@@ -0,0 +1,125 @@
from django.core.management.base import BaseCommand
from django.utils import timezone
from datetime import timedelta
from api.models import ContactUs, Composition, Campaign
class Command(BaseCommand):
help = 'Seed the database with Persian sample data'
def handle(self, *args, **options):
self.stdout.write(self.style.SUCCESS('Starting to seed database with Persian data...'))
# Seed ContactUs data
self.stdout.write('Creating ContactUs records...')
contact_data = [
{
'name': 'احمد محمدی',
'email_or_phone': 'ahmad.mohammadi@example.com',
'description': 'سلام، من علاقه‌مند به همکاری با شرکت شما هستم. لطفاً اطلاعات بیشتری در مورد فرصت‌های شغلی ارسال کنید.',
'category': 'همکاری'
},
{
'name': 'فاطمه رضایی',
'email_or_phone': '09123456789',
'description': 'با سلام، می‌خواستم در مورد محصولات شما اطلاعات بیشتری دریافت کنم. آیا امکان بازدید از نمایشگاه وجود دارد؟',
'category': 'فروش'
},
{
'name': 'علی کریمی',
'email_or_phone': 'ali.karimi@example.com',
'description': 'سلام، من مشکلی در استفاده از سرویس شما دارم. لطفاً راهنمایی کنید.',
'category': 'پشتیبانی'
},
{
'name': 'زهرا احمدی',
'email_or_phone': '09187654321',
'description': 'با احترام، می‌خواستم در مورد پروژه‌های سرمایه‌گذاری شما مشاوره دریافت کنم. لطفاً با من تماس بگیرید.',
'category': 'درخواست مشاور'
},
{
'name': 'محمد حسینی',
'email_or_phone': 'mohammad.hosseini@example.com',
'description': 'سلام، سوالی در مورد خدمات شما دارم که در دسته‌بندی‌های موجود نیست. لطفاً راهنمایی کنید.',
'category': 'سایر'
}
]
for i, data in enumerate(contact_data, 1):
ContactUs.objects.create(**data)
self.stdout.write(f' Created contact {i}/5')
# Seed Composition data
self.stdout.write('Creating Composition records...')
composition_data = [
{
'name': 'ترکیب استراتژیک زونکو',
'description': 'این ترکیب شامل بخش‌های مختلف شرکت زونکو می‌باشد که شامل مدیریت، توسعه، بازاریابی و فروش است. این ترکیب به گونه‌ای طراحی شده که بتواند حداکثر کارایی را در تمامی بخش‌ها ایجاد کند.'
},
{
'name': 'ترکیب تکنولوژی و نوآوری',
'description': 'ترکیبی از تکنولوژی‌های پیشرفته و نوآوری‌های روز دنیا که در شرکت زونکو به کار گرفته می‌شود. این ترکیب شامل هوش مصنوعی، بلاک چین و سایر تکنولوژی‌های نوین است.'
},
{
'name': 'ترکیب منابع انسانی',
'description': 'ترکیب بهینه از نیروی انسانی متخصص و با تجربه که در بخش‌های مختلف شرکت فعالیت می‌کنند. این ترکیب شامل مدیران ارشد، متخصصان فنی و کارشناسان بازاریابی است.'
},
{
'name': 'ترکیب مالی و سرمایه‌گذاری',
'description': 'ترکیب استراتژیک از منابع مالی و فرصت‌های سرمایه‌گذاری که شرکت زونکو در اختیار دارد. این ترکیب شامل سرمایه‌گذاری‌های داخلی و خارجی و مدیریت ریسک است.'
},
{
'name': 'ترکیب بازاریابی و فروش',
'description': 'ترکیب موثر از استراتژی‌های بازاریابی و فروش که برای دستیابی به اهداف تجاری شرکت طراحی شده است. این ترکیب شامل بازاریابی دیجیتال، روابط عمومی و فروش مستقیم است.'
}
]
for i, data in enumerate(composition_data, 1):
Composition.objects.create(**data)
self.stdout.write(f' Created composition {i}/5')
# Seed Campaign data
self.stdout.write('Creating Campaign records...')
now = timezone.now()
campaign_data = [
{
'name': 'کمپین تابستانه زونکو ۱۴۰۳',
'description': 'کمپین ویژه تابستان ۱۴۰۳ با تخفیف‌های ویژه و جوایز نقدی. این کمپین شامل تمامی محصولات و خدمات شرکت می‌باشد و فرصت مناسبی برای مشتریان است.',
'start_time': now - timedelta(days=30),
'end_time': now + timedelta(days=30)
},
{
'name': 'کمپین همکاری استراتژیک',
'description': 'کمپین جذب شرکای تجاری جدید برای همکاری در پروژه‌های بزرگ. این کمپین فرصت مناسبی برای شرکت‌هایی است که می‌خواهند با زونکو همکاری کنند.',
'start_time': now - timedelta(days=15),
'end_time': now + timedelta(days=45)
},
{
'name': 'کمپین نوآوری و تکنولوژی',
'description': 'کمپین معرفی آخرین نوآوری‌ها و تکنولوژی‌های شرکت زونکو. این کمپین شامل نمایشگاه‌ها، سمینارها و رویدادهای تخصصی است.',
'start_time': now + timedelta(days=10),
'end_time': now + timedelta(days=70)
},
{
'name': 'کمپین سرمایه‌گذاری زونکو',
'description': 'کمپین جذب سرمایه‌گذاران برای پروژه‌های جدید شرکت. این کمپین شامل ارائه اطلاعات کامل در مورد فرصت‌های سرمایه‌گذاری و بازدهی مورد انتظار است.',
'start_time': now - timedelta(days=60),
'end_time': now - timedelta(days=10)
},
{
'name': 'کمپین آموزش و توسعه',
'description': 'کمپین ارائه دوره‌های آموزشی و کارگاه‌های تخصصی برای توسعه مهارت‌های حرفه‌ای. این کمپین شامل دوره‌های آنلاین و حضوری است.',
'start_time': now + timedelta(days=5),
'end_time': now + timedelta(days=65)
}
]
for i, data in enumerate(campaign_data, 1):
Campaign.objects.create(**data)
self.stdout.write(f' Created campaign {i}/5')
self.stdout.write(self.style.SUCCESS('\nSuccessfully seeded database with Persian data!'))
self.stdout.write(f' - ContactUs: {ContactUs.objects.count()} records')
self.stdout.write(f' - Composition: {Composition.objects.count()} records')
self.stdout.write(f' - Campaign: {Campaign.objects.count()} records')