diff --git a/code/app.lua b/code/app.lua index 376eac4..c00d7df 100644 --- a/code/app.lua +++ b/code/app.lua @@ -91,7 +91,7 @@ app:match("/spl/:station", function(self) -- make a unique name/identifier for the track using a combination of artist_name and track_name -- in lower-case and spaces removed - local unique_track_name = artist_name + track_name -- add artist + local unique_track_name = artist_name .. track_name -- prepend artist unique_track_name = unique_track_name:lower() -- all to lowercase unique_track_name = unique_track_name:gsub("%s+", "") -- remove spaces @@ -101,7 +101,7 @@ app:match("/spl/:station", function(self) track = models.Tracks:create({ name = track_name, unique_name = unique_track_name, - year = release_year, + year = tonumber(release_year), info_url = track_info_url, img_url = track_img_url }) @@ -133,7 +133,7 @@ app:match("/spl/:station", function(self) print("new release: " .. release_name) release = models.Releases:create({ name = release_name, - year = release_year, + year = tonumber(release_year), country = release_country, label = release_label }) diff --git a/code/migrations.lua b/code/migrations.lua index 6e121a5..bf0ee82 100644 --- a/code/migrations.lua +++ b/code/migrations.lua @@ -97,7 +97,7 @@ return { {"year", types.integer({ null=true }) }, {"country", types.varchar({ null=true }) }, }) - create_index("releases", "name", "releaseid", { unique = true }) + create_index("releases", "name") -- track_releases schema.create_table("track_releases", { diff --git a/code/models.lua b/code/models.lua index db3188a..8bc7a86 100644 --- a/code/models.lua +++ b/code/models.lua @@ -4,27 +4,6 @@ -- -- Track stuff -- -- -- ----------- -- - --- -- 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", { @@ -40,7 +19,6 @@ -- } -- }) - -- -- mixes -- -- name/date -- local Mixes = Model:extend("mixes", { diff --git a/code/models/airtimes.lua b/code/models/airtimes.lua index 537ebb6..1983150 100644 --- a/code/models/airtimes.lua +++ b/code/models/airtimes.lua @@ -6,7 +6,7 @@ local Airtimes = Model:extend("airtimes", { timestamp = true, relations = { - {"tracks", belongs_to = "Tracks"}, + {"track", belongs_to = "Tracks"}, {"stations", has_one = "Stations"} } }) diff --git a/code/models/artists.lua b/code/models/artists.lua index 6284121..b546894 100644 --- a/code/models/artists.lua +++ b/code/models/artists.lua @@ -6,7 +6,10 @@ local Artists = Model:extend("artists", { -- "date", types.date -- "bio", types.text -- "urls", types.text - timestamp = true + timestamp = true, + relations = { + {"trackartists", has_many = "TrackArtists"} + } }) return Artists \ No newline at end of file diff --git a/code/models/releases.lua b/code/models/releases.lua new file mode 100644 index 0000000..de29c58 --- /dev/null +++ b/code/models/releases.lua @@ -0,0 +1,16 @@ +local Model = require("lapis.db.model").Model + +-- releases +local Releases = Model:extend("releases", { + -- "name", types.varchar + -- "label", types.varchar + -- "year", types.integer + -- "country", types.varchar + + timestamp = true, + relations = { + {"trackreleases", has_many = "TrackReleases"} + } +}) + +return Releases \ No newline at end of file diff --git a/code/models/trackreleases.lua b/code/models/trackreleases.lua new file mode 100644 index 0000000..53609ec --- /dev/null +++ b/code/models/trackreleases.lua @@ -0,0 +1,12 @@ +local Model = require("lapis.db.model").Model + +-- track_releases +local TrackReleases = Model:extend("track_releases", { + timestamp = true, + relations = { + {"track", belongs_to = "Tracks"}, + {"release", belongs_to = "Releases"} + } +}) + +return TrackReleases \ No newline at end of file diff --git a/code/models/tracks.lua b/code/models/tracks.lua index 6984d3f..44b5fa1 100644 --- a/code/models/tracks.lua +++ b/code/models/tracks.lua @@ -9,7 +9,9 @@ local Tracks = Model:extend("tracks", { timestamp = true, relations = { - {"airtimes", has_many = "Airtimes"} + {"airtimes", has_many = "Airtimes"}, + {"trackreleases", has_many = "TrackReleases"}, + {"trackartists", has_many = "TrackArtists"} } })