from django.db import models
from django.utils.translation import gettext_lazy as _

# Create your models here.
class Storages(models.Model):
    name = models.CharField(_('name'), max_length=20, error_messages={'required': _('No pool name has been entered')})
    status = models.IntegerField(_('status'))
    type = models.CharField(_('type'), max_length=100)
    size = models.IntegerField(_('size'))
    volumes = models.IntegerField(_('volumes'))

    def __str__(self):
        return f'{self.name}'
    
    class Meta:
        managed = False


class Volume(models.Model):
    name = models.CharField(_('name'), max_length=128)
    type = models.CharField(_('format'), max_length=12, choices=(('qcow2', 'qcow2 (recommended)'), ('qcow', 'qcow'), ('raw', 'raw')))
    allocation = models.IntegerField(_('allocation'))
    size = models.IntegerField(_('size'))

    def __str__(self):
        return f'{self.name}'

    class Meta:
        managed = False
        verbose_name_plural = "Volumes"


class Storage(models.Model):
    state = models.IntegerField(_('state'))
    size = models.IntegerField(_('size'))
    free = models.IntegerField(_('free'))
    status = models.CharField(_('status'), max_length=128)
    path = models.CharField(_('path'), max_length=128)
    type = models.CharField(_('type'), max_length=128)
    autostart = models.BooleanField(_('autostart'))
    volumes = models.ForeignKey(Volume, on_delete=models.DO_NOTHING)

    def __str__(self):
        return f'{self.path}'

    class Meta:
        managed = False