Migrated read APIs to Nitro

This commit is contained in:
lucast committed 2026-09-29 00:34:50 +02:00
1 parent eb4e9f0700
commit ee5809a489
26 files changed
+558

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
import mongoose, { Schema, type Model } from "mongoose"
const albumSchema = new Schema({
name: { type: String, required: true },
artists: {
type: [{ type: Schema.Types.ObjectId, ref: "Artist" }],
required: true,
},
file: { type: String, required: true },
genre: { type: Schema.Types.ObjectId, ref: "Genre", required: true },
})
export const Album =
(mongoose.models.Album as Model<any> | undefined) ??
(mongoose.model<any>("Album", albumSchema) as Model<any>)
+10
View File
@@ -0,0 +1,10 @@
import mongoose, { Schema, type Model } from "mongoose"
const artistSchema = new Schema({
name: { type: String, required: true },
file: { type: String, required: true },
})
export const Artist =
(mongoose.models.Artist as Model<any> | undefined) ??
(mongoose.model<any>("Artist", artistSchema) as Model<any>)
+9
View File
@@ -0,0 +1,9 @@
import mongoose, { Schema, type Model } from "mongoose"
const genreSchema = new Schema({
name: { type: String, required: true, unique: true },
})
export const Genre =
(mongoose.models.Genre as Model<any> | undefined) ??
(mongoose.model<any>("Genre", genreSchema) as Model<any>)
+22
View File
@@ -0,0 +1,22 @@
import mongoose, { Schema, type Model } from "mongoose"
const trackSchema = new Schema({
name: { type: String, required: true },
album: { type: Schema.Types.ObjectId, ref: "Album", required: true },
artists: {
type: [{ type: Schema.Types.ObjectId, ref: "Artist" }],
required: true,
},
fileDir: { type: String, required: true },
durationInSeconds: { type: Number, required: true },
lyrics: {
type: {
synced: { type: Boolean, required: true },
text: { type: String, required: true },
},
},
})
export const Track =
(mongoose.models.Track as Model<any> | undefined) ??
(mongoose.model<any>("Track", trackSchema) as Model<any>)