local Model = require("lapis.db.model").Model -- ----------- -- -- Track stuff -- -- ----------- -- -- artists -- - name/date/bio/urls local Artists = Model:extend("artists", { timestamp = true }) -- tracks -- - title/unique name == `lower(artist+title)` local Tracks = Model:extend("tracks", { timestamp = true, -- relations = { -- {"track_releases", has_many = "TrackReleases"}, -- {"track_mixes", has_many = "TrackMixes"}, -- {"copies", has_many = "Tracks"}, -- {"original", has_one = "Tracks"} -- } }) -- track_artists local TrackArtists = Model:extend("track_artists", { timestamp = true, relations = { {"track", belongs_to = "Tracks"}, {"artist", belongs_to = "Artists"} } }) -- stations -- - name/id local Stations = Model:extend("stations", { timestamp = true }) -- airtime -- - date local Airtime = Model:extend("airtimes", { timestamp = true, relations = { {"track", belongs_to = "Tracks"}, {"station", has_one = "Stations"} } }) -- -- releases -- -- - name/date/id -- local Releases = Model:extend("releases", { -- timestamp = true, -- relations = { -- {"artists", has_many = "Artists"}, -- {"tracks", has_many = "Tracks"}, -- {"label", has_one = "Labels"} -- } -- }) -- -- track_releases -- local TrackReleases = Model:extend("track_releases", { -- timestamp = true, -- relations = { -- {"track", belongs_to = "Tracks"}, -- {"release", belongs_to = "Releases"} -- } -- }) -- -- labels -- -- - name/date -- local Labels = Model:extend("labels", { -- timestamp = true, -- }) -- -- release_labels -- local ReleaseLabels = Model:extend("release_labels", { -- timestamp = true, -- relations = { -- {"release", has_many = "Releases"}, -- {"label", has_many = "Labels"} -- } -- }) -- -- mixes -- -- name/date -- local Mixes = Model:extend("mixes", { -- timestamp = true, -- relations = { -- {"artists", has_many = "Artists"} -- } -- }) -- ---------- -- -- User stuff -- -- ---------- -- --users -- name/email/password/last_login local Users = Model:extend("users", { timestamp = true }) -- date? -- local Favorite_tracks = Model:extend("favorite_tracks", { -- relations = { -- {"user", belongs_to = "Users"}, -- {"track", has_one = "Tracks"} -- } -- }) -- date? -- local Favorite_mixes = Model:extend("favorite_mixes", {}) -- local Favorite_artists = Model:extend("favorite_artists", {}) -- local Favorite_releases = Model:extend("favorite_releases", {}) -- local Favorite_labels = Model:extend("favorite_labels", {})