Source code for django_musicbrainz_connector.models.track

"""
CREATE TABLE track ( -- replicate (verbose)
    id                  SERIAL,
    gid                 UUID NOT NULL,
    recording           INTEGER NOT NULL, -- references recording.id
    medium              INTEGER NOT NULL, -- references medium.id
    position            INTEGER NOT NULL,
    number              TEXT NOT NULL,
    name                VARCHAR NOT NULL,
    artist_credit       INTEGER NOT NULL, -- references artist_credit.id
    length              INTEGER CHECK (length IS NULL OR length > 0),
    edits_pending       INTEGER NOT NULL DEFAULT 0 CHECK (edits_pending >= 0),
    last_updated        TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    is_data_track       BOOLEAN NOT NULL DEFAULT FALSE
);
"""

from django.db import models


[docs] class Track(models.Model): id = models.IntegerField("ID", primary_key=True, db_column="id") gid = models.UUIDField("GID", db_column="gid") recording = models.ForeignKey( "Recording", verbose_name="Recording", related_name="tracks", on_delete=models.PROTECT, db_column="recording", ) medium = models.ForeignKey( "Medium", verbose_name="Medium", related_name="tracks", on_delete=models.PROTECT, db_column="medium", ) position = models.IntegerField("Position", db_column="position") number = models.TextField("Number", db_column="number") name = models.CharField(max_length=2048, db_column="name") artist_credit = models.ForeignKey( "ArtistCredit", verbose_name="Artist Credit", related_name="tracks", on_delete=models.PROTECT, db_column="artist_credit", ) length = models.PositiveIntegerField("Length", null=True, blank=True, db_column="length") edits_pending = models.PositiveIntegerField("Edits Pending", db_column="edits_pending", default=0) last_updated = models.DateTimeField("Last Updated", db_column="last_updated") is_data_track = models.BooleanField("Is Data Track?", default=False, db_column="is_data_track") def __str__(self) -> str: return self.name class Meta: managed = False db_table = "track" verbose_name_plural = "Tracks" ordering = ["position"]