From b53b91efc0cf6ff96aa6da24f1183fc6bf722668 Mon Sep 17 00:00:00 2001 From: dreamer Date: Sun, 20 Sep 2020 17:11:30 +0200 Subject: [PATCH] use autoload() --- code/migrations.lua | 40 +++++++++++++++++++++------ code/models.lua | 53 +++++------------------------------- code/models/airtime.lua | 14 ++++++++++ code/models/artists.lua | 12 ++++++++ code/models/stations.lua | 12 ++++++++ code/models/trackartists.lua | 12 ++++++++ code/models/tracks.lua | 17 ++++++++++++ 7 files changed, 105 insertions(+), 55 deletions(-) create mode 100644 code/models/airtime.lua create mode 100644 code/models/artists.lua create mode 100644 code/models/stations.lua create mode 100644 code/models/trackartists.lua create mode 100644 code/models/tracks.lua diff --git a/code/migrations.lua b/code/migrations.lua index 6b0ce96..e89534c 100644 --- a/code/migrations.lua +++ b/code/migrations.lua @@ -1,3 +1,4 @@ +local db = require("lapis.db") local schema = require("lapis.db.schema") local types = schema.types @@ -34,7 +35,7 @@ return { -- {"mixes", types.foreign_key}, }) create_index("tracks", "unique_name", { unique=true }) - + -- track_artists schema.create_table("track_artists", { {"id", types.serial, { unique=true, primary_key=true }}, @@ -44,8 +45,7 @@ return { {"artist", types.foreign_key} }) create_index("track_artists", "track", "artist", { unique=true }) - - + -- stations schema.create_table("stations", { {"id", types.serial, { unique=true, primary_key=true }}, @@ -55,7 +55,28 @@ return { {"name", types.varchar}, }) create_index("stations", "station", "name", { unique=true }) - + + db.insert("stations", { + created_at = os.date(), + updated_at = os.date(), + station = 1, + name = "Cybernetic Broadcasting System" + }) + + db.insert("stations", { + created_at = os.date(), + updated_at = os.date(), + station = 2, + name = "Disco Fetish" + }) + + db.insert("stations", { + created_at = os.date(), + updated_at = os.date(), + station = 3, + name = "The Dream Machine" + }) + -- airtime schema.create_table("airtimes", { {"id", types.serial, { unique=true, primary_key=true }}, @@ -67,7 +88,6 @@ return { }) create_index("airtimes", "airtime", "track", "station", { unique=true }) - -- -- releases -- schema.create_table("releases", { -- {"id", types.serial, { unique=true, primary_key=true }}, @@ -89,7 +109,8 @@ return { -- {"release", types.foreign_key} -- }) -- create_index("track_releases", "track", "release", { unique=true }) - + + -- -- labels -- schema.create_table("labels", { -- {"id", types.serial, { unique=true, primary_key=true }}, -- {"created_at", types.time}, @@ -99,14 +120,15 @@ return { -- }) -- create_index("labels", "name", { unique = true }) - -- schema.create_table("release_labels", { + -- -- label_releases + -- schema.create_table("label_releases", { -- {"id", types.serial, { unique=true, primary_key=true }}, -- {"created_at", types.time}, -- {"updated_at", types.time}, -- {"release", types.foreign_key}, -- {"label", types.foreign_key} -- }) - -- create_index("release_labels", "release", "label", { unique=true }) + -- create_index("label_releases", "release", "label", { unique=true }) -- -- mixes -- schema.create_table("mixes", { @@ -119,7 +141,6 @@ return { -- create_index("mixes", "name", "date", { unique = true }) - -- ---------- -- -- User stuff -- -- ---------- -- @@ -143,4 +164,5 @@ return { -- favorite_labels end + } \ No newline at end of file diff --git a/code/models.lua b/code/models.lua index b42499f..c95e475 100644 --- a/code/models.lua +++ b/code/models.lua @@ -1,51 +1,8 @@ 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"} - } -}) +-- -- ----------- -- +-- -- Track stuff -- +-- -- ----------- -- -- -- releases @@ -117,3 +74,7 @@ local Users = Model:extend("users", { -- local Favorite_artists = Model:extend("favorite_artists", {}) -- local Favorite_releases = Model:extend("favorite_releases", {}) -- local Favorite_labels = Model:extend("favorite_labels", {}) + + +local autoload = require("lapis.util").autoload +return autoload("models") \ No newline at end of file diff --git a/code/models/airtime.lua b/code/models/airtime.lua new file mode 100644 index 0000000..537ebb6 --- /dev/null +++ b/code/models/airtime.lua @@ -0,0 +1,14 @@ +local Model = require("lapis.db.model").Model + +-- airtime +local Airtimes = Model:extend("airtimes", { + -- "airtime", types.time + + timestamp = true, + relations = { + {"tracks", belongs_to = "Tracks"}, + {"stations", has_one = "Stations"} + } +}) + +return Airtimes \ No newline at end of file diff --git a/code/models/artists.lua b/code/models/artists.lua new file mode 100644 index 0000000..6284121 --- /dev/null +++ b/code/models/artists.lua @@ -0,0 +1,12 @@ +local Model = require("lapis.db.model").Model + +-- artists +local Artists = Model:extend("artists", { + -- "name", types.varchar + -- "date", types.date + -- "bio", types.text + -- "urls", types.text + timestamp = true +}) + +return Artists \ No newline at end of file diff --git a/code/models/stations.lua b/code/models/stations.lua new file mode 100644 index 0000000..e6604ad --- /dev/null +++ b/code/models/stations.lua @@ -0,0 +1,12 @@ +local Model = require("lapis.db.model").Model + +-- stations +-- - name/id +local Stations = Model:extend("stations", { + -- "station", types.integer + -- "name", types.varchar + + timestamp = true +}) + +return Stations \ No newline at end of file diff --git a/code/models/trackartists.lua b/code/models/trackartists.lua new file mode 100644 index 0000000..d962431 --- /dev/null +++ b/code/models/trackartists.lua @@ -0,0 +1,12 @@ +local Model = require("lapis.db.model").Model + +-- track_artists +local TrackArtists = Model:extend("track_artists", { + timestamp = true, + relations = { + {"track", belongs_to = "Tracks"}, + {"artist", belongs_to = "Artists"} + } +}) + +return TrackArtists \ No newline at end of file diff --git a/code/models/tracks.lua b/code/models/tracks.lua new file mode 100644 index 0000000..d23138c --- /dev/null +++ b/code/models/tracks.lua @@ -0,0 +1,17 @@ +local Model = require("lapis.db.model").Model + +-- tracks +-- - title/unique name == `lower(artist+title)` +local Tracks = Model:extend("tracks", { + -- "name", types.varchar + -- "unique_name", types.varchar + -- "year", types.integer + + timestamp = true, + -- relations = { + -- {"copies", has_many = "Tracks"}, + -- {"original", has_one = "Tracks"} + -- } +}) + +return Tracks \ No newline at end of file