A decentralized music tracking and discovery platform built on AT Protocol 馃幍 rocksky.app
spotify atproto lastfm musicbrainz scrobbling listenbrainz
at main 27 lines 1.0 kB view raw
1import { type InferInsertModel, type InferSelectModel, sql } from "drizzle-orm"; 2import { integer, pgTable, text, timestamp } from "drizzle-orm/pg-core"; 3 4const artists = pgTable("artists", { 5 id: text("xata_id").primaryKey().default(sql`xata_id()`), 6 name: text("name").notNull(), 7 biography: text("biography"), 8 born: timestamp("born"), 9 bornIn: text("born_in"), 10 died: timestamp("died"), 11 picture: text("picture"), 12 sha256: text("sha256").unique().notNull(), 13 uri: text("uri").unique(), 14 appleMusicLink: text("apple_music_link"), 15 spotifyLink: text("spotify_link"), 16 tidalLink: text("tidal_link"), 17 youtubeLink: text("youtube_link"), 18 genres: text("genres").array(), 19 createdAt: timestamp("xata_createdat").defaultNow().notNull(), 20 updatedAt: timestamp("xata_updatedat").defaultNow().notNull(), 21 xataVersion: integer("xata_version"), 22}); 23 24export type SelectArtist = InferSelectModel<typeof artists>; 25export type InsertArtist = InferInsertModel<typeof artists>; 26 27export default artists;