PreviouslyOnIFM/code/models.lua

123 lines
2.7 KiB
Lua

local autoload = require("lapis.util").autoload
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:extern("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", {})
return autoload("models")