from elixir import *
from art import Art

class Tag(Entity):
    # look into how ondelete works.  This just sets a database property.
    art = ManyToOne('Art', ondelete='cascade', required=True)
    tagger = ManyToOne('User', ondelete='cascade', required=True)
    tagtext = ManyToOne('TagText', required=True)

    def __unicode__(self):
        if not self.tagtext:
            return "(broken)"
        return unicode(self.tagtext)

class TagText(Entity):
    text = Field(Unicode(50), required=True) # gotta enforce this somehow
    tags = OneToMany('Tag')

    def __unicode__(self):
        return self.text
