
import random

from api.models import EsInvigilator
from api.utils import get_next_available_code
from django.core.management.base import BaseCommand

class Command(BaseCommand):
    def handle(self, *args, **options):
        max = 50
        i = 0
        while (i < max):
            first = self.generate_first_name()
            last = self.generate_first_name()
            number = random.randint(10, 9999)

            idata = {}
            idata["code"] = get_next_available_code(EsInvigilator, "code", "MV", 10)
            idata["name"] = full_name = f"{first} {last}"
            idata["status"] = 1
            idata["email"] = f"{first.lower()}_{last.lower()}{number}@mayvin.io"
    
            EsInvigilator.objects.create(**idata)
            i = i + 1
 
    def generate_first_name(self):
        first_names = [
            "James", "John", "Robert", "Michael", "David",
            "William", "Richard", "Joseph", "Thomas", "Charles",
            "Christopher", "Daniel", "Matthew", "Anthony", "Mark",
            "Donald", "Steven", "Paul", "Andrew", "Joshua",
            "Kenneth", "Kevin", "Brian", "George", "Edward",
            "Ronald", "Timothy", "Jason", "Jeffrey", "Ryan",
            "Jacob", "Gary", "Nicholas", "Eric", "Jonathan",
            "Stephen", "Larry", "Justin", "Scott", "Brandon",
            "Benjamin", "Samuel", "Gregory", "Alexander", "Patrick",
            "Frank", "Raymond", "Jack", "Dennis", "Jerry"
        ]

        return random.choice(first_names)

    def generate_last_name(self):
        last_names = [
            "Smith", "Johnson", "Williams", "Brown", "Jones",
            "Garcia", "Miller", "Davis", "Rodriguez", "Martinez",
            "Hernandez", "Lopez", "Gonzalez", "Wilson", "Anderson",
            "Thomas", "Taylor", "Moore", "Jackson", "Martin",
            "Lee", "Perez", "Thompson", "White", "Harris",
            "Sanchez", "Clark", "Ramirez", "Lewis", "Robinson",
            "Walker", "Young", "Allen", "King", "Wright",
            "Scott", "Torres", "Nguyen", "Hill", "Flores",
            "Green", "Adams", "Nelson", "Baker", "Hall",
            "Rivera", "Campbell", "Mitchell", "Carter", "Roberts"
        ]

        return random.choice(last_names)
