123 lines
2.7 KiB
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")
|