Flatlogic Bot 33d53234ea 1.0
2025-11-24 07:57:57 +00:00

71 lines
3.0 KiB
Python

from django.core.management.base import BaseCommand
from django.contrib.auth.models import User
from core.models import Brand, Incident
import random
class Command(BaseCommand):
help = 'Seeds the database with initial data for brands, incidents, and a default user.'
def handle(self, *args, **options):
self.stdout.write('Deleting existing data...')
Incident.objects.all().delete()
Brand.objects.all().delete()
User.objects.filter(is_superuser=False).delete()
self.stdout.write('Creating new data...')
# Create a superuser if it doesn't exist
if not User.objects.filter(username='admin').exists():
User.objects.create_superuser('admin', 'admin@example.com', 'admin123')
self.stdout.write(self.style.SUCCESS('Successfully created a superuser.'))
# Get the admin user
admin_user = User.objects.get(username='admin')
# Create a brand and associate it with the admin user
brand = Brand.objects.create(
name="GuardiaNet",
website="https://guardianet.example.com",
logo_url="https://placehold.co/100x100/0A192F/FFFFFF/png?text=G",
)
brand.users.add(admin_user)
# Sample data for incidents
incidents_data = [
{
"incident_type": "phishing_attack",
"source_url": "https://guardianet-login.scam.com/signin",
"content": "A fraudulent website is impersonating our login page to steal user credentials. The design is a near-perfect replica of our own.",
"status": "new",
},
{
"incident_type": "negative_review",
"source_url": "https://twitter.com/unhappy_user/status/1234567890",
"content": "A highly negative and misleading tweet about our service uptime is gaining traction. It contains false information about a recent outage.",
"status": "in_review",
},
{
"incident_type": "domain_squatting",
"source_url": "http://guardianet.org",
"content": "A third party has registered the .org domain of our brand name and has put up a page with competitor ads.",
"status": "new",
},
{
"incident_type": "social_impersonation",
"source_url": "https://instagram.com/guardianet_support_scam",
"content": "An unofficial Instagram account is pretending to be our official support channel and asking users for their private information.",
"status": "resolved",
},
]
for data in incidents_data:
Incident.objects.create(
brand=brand,
incident_type=data["incident_type"],
source_url=data["source_url"],
content=data["content"],
status=data["status"],
)
self.stdout.write(self.style.SUCCESS('Successfully seeded the database.'))