''' media that is posted in the app '''
from django.db import models

from bookwyrm import activitypub
from .activitypub_mixin import ActivitypubMixin
from .base_model import BookWyrmModel
from . import fields


class Attachment(ActivitypubMixin, BookWyrmModel):
    ''' an image (or, in the future, video etc) associated with a status '''
    status = models.ForeignKey(
        'Status',
        on_delete=models.CASCADE,
        related_name='attachments',
        null=True
    )
    reverse_unfurl = True
    class Meta:
        ''' one day we'll have other types of attachments besides images '''
        abstract = True


class Image(Attachment):
    ''' an image attachment '''
    image = fields.ImageField(
        upload_to='status/', null=True, blank=True, activitypub_field='url')
    caption = fields.TextField(null=True, blank=True, activitypub_field='name')

    activity_serializer = activitypub.Image