from django.db import models


class Book(models.Model):
    title = models.CharField(max_length=50)
    author = models.CharField(max_length=50)
    pages = models.IntegerField(db_column='page_count')
    shortcut = models.CharField(max_length=50, db_tablespace='idx_tbls')
    isbn = models.CharField(max_length=50, db_tablespace='idx_tbls')
    barcode = models.CharField(max_length=31)

    class Meta:
        indexes = [
            models.Index(fields=['title']),
            models.Index(fields=['isbn', 'id']),
            models.Index(fields=['barcode'], name='%(app_label)s_%(class)s_barcode_idx'),
        ]


class AbstractModel(models.Model):
    name = models.CharField(max_length=50)
    shortcut = models.CharField(max_length=3)

    class Meta:
        abstract = True
        indexes = [
            models.Index(fields=['name']),
            models.Index(fields=['shortcut'], name='%(app_label)s_%(class)s_idx'),
        ]


class ChildModel1(AbstractModel):
    pass


class ChildModel2(AbstractModel):
    pass
