36191-vm/core/management/commands/run_simulation.py
Flatlogic Bot 903669d6ea ger
2025-11-24 09:58:56 +00:00

36 lines
1.3 KiB
Python

import random
import time
from django.core.management.base import BaseCommand
from core.models import Unit
class Command(BaseCommand):
help = 'Starts the data simulation for emergency units.'
def handle(self, *args, **options):
self.stdout.write(self.style.SUCCESS('Starting simulation...'))
statuses = ['Available', 'Enroute', 'On Scene', 'Returning']
while True:
try:
units = Unit.objects.all()
for unit in units:
# Simulate location change
unit.location_lat += random.uniform(-0.01, 0.01)
unit.location_lon += random.uniform(-0.01, 0.01)
# Simulate status change
if random.random() < 0.1: # 10% chance to change status
unit.status = random.choice(statuses)
unit.save()
self.stdout.write(self.style.SUCCESS(f'Updated {len(units)} units.'))
time.sleep(5)
except KeyboardInterrupt:
self.stdout.write(self.style.WARNING('Simulation stopped by user.'))
break
except Exception as e:
self.stderr.write(self.style.ERROR(f'An error occurred: {e}'))
time.sleep(10) # Wait a bit before retrying