A decentralized music tracking and discovery platform built on AT Protocol 馃幍
listenbrainz
spotify
atproto
lastfm
musicbrainz
scrobbling
1import { type InferInsertModel, type InferSelectModel, sql } from "drizzle-orm";
2import { integer, pgTable, text, timestamp } from "drizzle-orm/pg-core";
3import tracks from "./tracks";
4import users from "./users";
5
6const queueTracks = pgTable("queue_tracks", {
7 id: text("xata_id").primaryKey().default(sql`xata_id()`),
8 userId: text("user_id")
9 .notNull()
10 .references(() => users.id),
11 trackId: text("track_id")
12 .notNull()
13 .references(() => tracks.id),
14 position: integer("position").notNull(),
15 fileUri: text("file_uri").notNull(),
16 version: integer("xata_version").default(0).notNull(),
17 createdAt: timestamp("xata_createdat").defaultNow().notNull(),
18 updatedAt: timestamp("xata_updatedat").defaultNow().notNull(),
19});
20
21export type SelectQueueTrack = InferSelectModel<typeof queueTracks>;
22export type InsertQueueTrack = InferInsertModel<typeof queueTracks>;
23
24export default queueTracks;