# Generated by Django 5.2 on 2025-07-04 14:19 import django.db.models.deletion import hub.services.models.base import hub.services.models.images from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ("services", "0039_article_article_date"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="ImageLibrary", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "name", models.CharField( help_text="Descriptive name for the image", max_length=200 ), ), ( "slug", models.SlugField( help_text="URL-friendly version of the name", max_length=250, unique=True, ), ), ( "description", models.TextField( blank=True, help_text="Optional description of the image" ), ), ( "alt_text", models.CharField( help_text="Alternative text for accessibility", max_length=255 ), ), ( "image", models.ImageField( help_text="Upload image file (max 1MB)", upload_to=hub.services.models.images.get_image_upload_path, validators=[hub.services.models.base.validate_image_size], ), ), ( "width", models.PositiveIntegerField( blank=True, help_text="Image width in pixels", null=True ), ), ( "height", models.PositiveIntegerField( blank=True, help_text="Image height in pixels", null=True ), ), ( "file_size", models.PositiveIntegerField( blank=True, help_text="File size in bytes", null=True ), ), ( "category", models.CharField( choices=[ ("logo", "Logo"), ("article", "Article Image"), ("banner", "Banner"), ("icon", "Icon"), ("screenshot", "Screenshot"), ("photo", "Photo"), ("other", "Other"), ], default="other", help_text="Category of the image", max_length=20, ), ), ( "tags", models.CharField( blank=True, help_text="Comma-separated tags for searching", max_length=500, ), ), ( "uploaded_at", models.DateTimeField( auto_now_add=True, help_text="Date and time when image was uploaded", ), ), ( "updated_at", models.DateTimeField( auto_now=True, help_text="Date and time when image was last updated", ), ), ( "usage_count", models.PositiveIntegerField( default=0, help_text="Number of times this image is referenced" ), ), ( "uploaded_by", models.ForeignKey( blank=True, help_text="User who uploaded the image", null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), ], options={ "verbose_name": "Image", "verbose_name_plural": "Image Library", "ordering": ["-uploaded_at"], }, ), ]