from django.core.management.base import BaseCommand
from hosting.models import VirtualMachineType


class Command(BaseCommand):
    help = 'Create VM types'

    def get_data(self):

        return [
            {
                'base_price': 10,
                'core_price': 5,
                'memory_price': 2,
                'disk_size_price': 0.6,
                'cores': 1,
                'memory': 2,
                'disk_size': 10
            },
            {
                'base_price': 10,
                'core_price': 5,
                'memory_price': 2,
                'disk_size_price': 0.6,
                'cores': 1,
                'memory': 2,
                'disk_size': 100
            },
            {
                'base_price': 10,
                'core_price': 5,
                'memory_price': 2,
                'disk_size_price': 0.6,
                'cores': 2,
                'memory': 4,
                'disk_size': 20
            },
            {
                'base_price': 10,
                'core_price': 5,
                'memory_price': 2,
                'disk_size_price': 0.6,
                'cores': 4,
                'memory': 8,
                'disk_size': 40
            },
            {
                'base_price': 10,
                'core_price': 5,
                'memory_price': 2,
                'disk_size_price': 0.6,
                'cores': 16,
                'memory': 8,
                'disk_size': 40
            },
        ]

        # not used
        #  hetzner = {
        #     'base_price': 10,
        #     'core_price': 5,
        #     'memory_price': 2,
        #     'disk_size_price': 0.6,
        #     'description': 'VM auf einzelner HW, Raid1, kein HA',
        #     'location': 'DE'
        # }

        # return {
        #     # 'hetzner_nug': {
        #     #     'base_price': 5,
        #     #     'memory_price': 2,
        #     #     'core_price': 2,
        #     #     'disk_size_price': 0.5,
        #     #     'description': 'VM ohne Uptime Garantie'
        #     # },
        #     'hetzner': hetzner,
        #     # 'hetzner_raid6': {
        #     #     'base_price': hetzner['base_price']*1.2,
        #     #     'core_price': hetzner['core_price']*1.2,
        #     #     'memory_price': hetzner['memory_price']*1.2,
        #     #     'disk_size_price': hetzner['disk_size_price']*1.2,
        #     #     'description': 'VM auf einzelner HW, Raid1, kein HA'

        #     # },
        #     # 'hetzner_glusterfs': {
        #     #     'base_price': hetzner['base_price']*1.4,
        #     #     'core_price': hetzner['core_price']*1.4,
        #     #     'memory_price': hetzner['memory_price']*1.4,
        #     #     'disk_size_price': hetzner['disk_size_price']*1.4,
        #     #     'description': 'VM auf einzelner HW, Raid1, kein HA'
        #     # },
        #     'bern': {
        #         'base_price': 12,
        #         'core_price': 25,
        #         'memory_price': 7,
        #         'disk_size_price': 0.70,
        #         'description': "VM in Bern, HA Setup ohne HA Garantie",
        #         'location': 'CH',
        #     }
        # }

    def handle(self, *args, **options):

        vm_data = self.get_data()
        for vm in vm_data:
            VirtualMachineType.objects.create(**vm)
