A decentralized music tracking and discovery platform built on AT Protocol 馃幍
rocksky.app
spotify
atproto
lastfm
musicbrainz
scrobbling
listenbrainz
1import { type InferInsertModel, type InferSelectModel, sql } from "drizzle-orm";
2import { pgTable, text, timestamp } from "drizzle-orm/pg-core";
3import playlists from "./playlists";
4import users from "./users";
5
6const userPlaylists = pgTable("user_playlists", {
7 id: text("xata_id").primaryKey().default(sql`xata_id()`),
8 userId: text("user_id")
9 .notNull()
10 .references(() => users.id),
11 playlistId: text("playlist_id")
12 .notNull()
13 .references(() => playlists.id),
14 createdAt: timestamp("xata_createdat").defaultNow().notNull(),
15 uri: text("uri").unique(),
16});
17
18export type SelectUserPlaylist = InferSelectModel<typeof userPlaylists>;
19export type InsertUserPlaylist = InferInsertModel<typeof userPlaylists>;
20
21export default userPlaylists;