"""Generators for all the different thumbnail sizes"""
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFit


class BookXSmallWebp(ImageSpec):
    """Handles XSmall size in Webp format"""

    processors = [ResizeToFit(80, 80)]
    format = "WEBP"
    options = {"quality": 95}


class BookXSmallJpg(ImageSpec):
    """Handles XSmall size in Jpeg format"""

    processors = [ResizeToFit(80, 80)]
    format = "JPEG"
    options = {"quality": 95}


class BookSmallWebp(ImageSpec):
    """Handles Small size in Webp format"""

    processors = [ResizeToFit(100, 100)]
    format = "WEBP"
    options = {"quality": 95}


class BookSmallJpg(ImageSpec):
    """Handles Small size in Jpeg format"""

    processors = [ResizeToFit(100, 100)]
    format = "JPEG"
    options = {"quality": 95}


class BookMediumWebp(ImageSpec):
    """Handles Medium size in Webp format"""

    processors = [ResizeToFit(150, 150)]
    format = "WEBP"
    options = {"quality": 95}


class BookMediumJpg(ImageSpec):
    """Handles Medium size in Jpeg format"""

    processors = [ResizeToFit(150, 150)]
    format = "JPEG"
    options = {"quality": 95}


class BookLargeWebp(ImageSpec):
    """Handles Large size in Webp format"""

    processors = [ResizeToFit(200, 200)]
    format = "WEBP"
    options = {"quality": 95}


class BookLargeJpg(ImageSpec):
    """Handles Large size in Jpeg format"""

    processors = [ResizeToFit(200, 200)]
    format = "JPEG"
    options = {"quality": 95}


class BookXLargeWebp(ImageSpec):
    """Handles XLarge size in Webp format"""

    processors = [ResizeToFit(250, 250)]
    format = "WEBP"
    options = {"quality": 95}


class BookXLargeJpg(ImageSpec):
    """Handles XLarge size in Jpeg format"""

    processors = [ResizeToFit(250, 250)]
    format = "JPEG"
    options = {"quality": 95}


class BookXxLargeWebp(ImageSpec):
    """Handles XxLarge size in Webp format"""

    processors = [ResizeToFit(500, 500)]
    format = "WEBP"
    options = {"quality": 95}


class BookXxLargeJpg(ImageSpec):
    """Handles XxLarge size in Jpeg format"""

    processors = [ResizeToFit(500, 500)]
    format = "JPEG"
    options = {"quality": 95}


register.generator("bw:book:xsmall:webp", BookXSmallWebp)
register.generator("bw:book:xsmall:jpg", BookXSmallJpg)
register.generator("bw:book:small:webp", BookSmallWebp)
register.generator("bw:book:small:jpg", BookSmallJpg)
register.generator("bw:book:medium:webp", BookMediumWebp)
register.generator("bw:book:medium:jpg", BookMediumJpg)
register.generator("bw:book:large:webp", BookLargeWebp)
register.generator("bw:book:large:jpg", BookLargeJpg)
register.generator("bw:book:xlarge:webp", BookXLargeWebp)
register.generator("bw:book:xlarge:jpg", BookXLargeJpg)
register.generator("bw:book:xxlarge:webp", BookXxLargeWebp)
register.generator("bw:book:xxlarge:jpg", BookXxLargeJpg)

"""Generators for all the different thumbnail sizes"""
from imagekit import ImageSpec, register
from imagekit.processors import ResizeToFit


class BookXSmallWebp(ImageSpec):
    """Handles XSmall size in Webp format"""

    processors = [ResizeToFit(80, 80)]
    format = "WEBP"
    options = {"quality": 95}


class BookXSmallJpg(ImageSpec):
    """Handles XSmall size in Jpeg format"""

    processors = [ResizeToFit(80, 80)]
    format = "JPEG"
    options = {"quality": 95}


class BookSmallWebp(ImageSpec):
    """Handles Small size in Webp format"""

    processors = [ResizeToFit(100, 100)]
    format = "WEBP"
    options = {"quality": 95}


class BookSmallJpg(ImageSpec):
    """Handles Small size in Jpeg format"""

    processors = [ResizeToFit(100, 100)]
    format = "JPEG"
    options = {"quality": 95}


class BookMediumWebp(ImageSpec):
    """Handles Medium size in Webp format"""

    processors = [ResizeToFit(150, 150)]
    format = "WEBP"
    options = {"quality": 95}


class BookMediumJpg(ImageSpec):
    """Handles Medium size in Jpeg format"""

    processors = [ResizeToFit(150, 150)]
    format = "JPEG"
    options = {"quality": 95}


class BookLargeWebp(ImageSpec):
    """Handles Large size in Webp format"""

    processors = [ResizeToFit(200, 200)]
    format = "WEBP"
    options = {"quality": 95}


class BookLargeJpg(ImageSpec):
    """Handles Large size in Jpeg format"""

    processors = [ResizeToFit(200, 200)]
    format = "JPEG"
    options = {"quality": 95}


class BookXLargeWebp(ImageSpec):
    """Handles XLarge size in Webp format"""

    processors = [ResizeToFit(250, 250)]
    format = "WEBP"
    options = {"quality": 95}


class BookXLargeJpg(ImageSpec):
    """Handles XLarge size in Jpeg format"""

    processors = [ResizeToFit(250, 250)]
    format = "JPEG"
    options = {"quality": 95}


class BookXxLargeWebp(ImageSpec):
    """Handles XxLarge size in Webp format"""

    processors = [ResizeToFit(500, 500)]
    format = "WEBP"
    options = {"quality": 95}


class BookXxLargeJpg(ImageSpec):
    """Handles XxLarge size in Jpeg format"""

    processors = [ResizeToFit(500, 500)]
    format = "JPEG"
    options = {"quality": 95}


register.generator("bw:book:xsmall:webp", BookXSmallWebp)
register.generator("bw:book:xsmall:jpg", BookXSmallJpg)
register.generator("bw:book:small:webp", BookSmallWebp)
register.generator("bw:book:small:jpg", BookSmallJpg)
register.generator("bw:book:medium:webp", BookMediumWebp)
register.generator("bw:book:medium:jpg", BookMediumJpg)
register.generator("bw:book:large:webp", BookLargeWebp)
register.generator("bw:book:large:jpg", BookLargeJpg)
register.generator("bw:book:xlarge:webp", BookXLargeWebp)
register.generator("bw:book:xlarge:jpg", BookXLargeJpg)
register.generator("bw:book:xxlarge:webp", BookXxLargeWebp)
register.generator("bw:book:xxlarge:jpg", BookXxLargeJpg)

Generators for all the different thumbnail sizes Handles XSmall size in Webp format Handles XSmall size in Jpeg format Handles Small size in Webp format Handles Small size in Jpeg format Handles Medium size in Webp format Handles Medium size in Jpeg format Handles Large size in Webp format Handles Large size in Jpeg format Handles XLarge size in Webp format Handles XLarge size in Jpeg format Handles XxLarge size in Webp format Handles XxLarge size in Jpeg format