from django.contrib.auth.models import User from django.db.models import CharField, TextField, IntegerField from django.db.models import ForeignKey, ManyToManyField from django.db.models import CASCADE from django.db.models import Model class Entity(Model): ENTITY_TYPES = [ ('artist', 'Artista'), ('release-group', 'Grupo de Lanzamientos'), ('release', 'Lanzamiento'), ('recording', 'Grabación') ] mbid = CharField(max_length=36, primary_key=True) entity_type = CharField(max_length=25, choices=ENTITY_TYPES) class Tag(Model): user = ForeignKey(User, on_delete=CASCADE) name = CharField(max_length=50) class ListItem(Model): user = ForeignKey(User, on_delete=CASCADE) entity = ForeignKey(Entity, on_delete=CASCADE) tags = ManyToManyField(Tag, on_delete=CASCADE) class Stars(Model): user = ForeignKey(User, on_delete=CASCADE) entity = ForeignKey(ListItem, on_delete=CASCADE) quantity = IntegerField() class Opinion(Model): user = ForeignKey(User, on_delete=CASCADE) entity = ForeignKey(ListItem, on_delete=CASCADE) opinion_text = TextField() class OpinionHelpful(Model): VOTES = [ ('Y', 'Si'), ('N', 'No'), ('F', 'Divertida') ] user = ForeignKey(User, on_delete=CASCADE) opinion = ForeignKey(Opinion, on_delete=CASCADE) vote = CharField(max_length=1, choices=VOTES)