A decentralized music tracking and discovery platform built on AT Protocol 馃幍
at main 30 lines 916 B view raw
1import { type InferInsertModel, type InferSelectModel, sql } from "drizzle-orm"; 2import { integer, sqliteTable, text, unique } from "drizzle-orm/sqlite-core"; 3import albums from "./albums"; 4import tracks from "./tracks"; 5 6const albumTracks = sqliteTable( 7 "album_tracks", 8 { 9 id: text("id").primaryKey().notNull(), 10 albumId: text("album_id") 11 .notNull() 12 .references(() => albums.id), 13 trackId: text("track_id") 14 .notNull() 15 .references(() => tracks.id), 16 createdAt: integer("created_at") 17 .notNull() 18 .default(sql`(unixepoch())`), 19 updatedAt: integer("updated_at") 20 .notNull() 21 .default(sql`(unixepoch())`), 22 }, 23 24 (t) => [unique("album_tracks_unique_index").on(t.albumId, t.trackId)], 25); 26 27export type SelectAlbumTrack = InferSelectModel<typeof albumTracks>; 28export type InsertAlbumTrack = InferInsertModel<typeof albumTracks>; 29 30export default albumTracks;