A decentralized music tracking and discovery platform built on AT Protocol 馃幍
listenbrainz spotify atproto lastfm musicbrainz scrobbling
at main 24 lines 913 B view raw
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;