forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
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;