package migrationsimport ("context""database/sql""github.com/pressly/goose/v3")func init() {goose.AddMigrationContext(upAddGenreTables, downAddGenreTables)}func upAddGenreTables(ctx context.Context, tx *sql.Tx) error {notice(ctx, tx, "A full rescan will be performed to import multiple genres!")_, err := tx.ExecContext(ctx, `create table if not exists genre(id varchar not null primary key,name varchar not null,constraint genre_name_uxunique (name));create table if not exists album_genres(album_id varchar default null not nullreferences albumon delete cascade,genre_id varchar default null not nullreferences genreon delete cascade,constraint album_genre_uxunique (album_id, genre_id));create table if not exists media_file_genres(media_file_id varchar default null not nullreferences media_fileon delete cascade,genre_id varchar default null not nullreferences genreon delete cascade,constraint media_file_genre_uxunique (media_file_id, genre_id));create table if not exists artist_genres(artist_id varchar default null not nullreferences artiston delete cascade,genre_id varchar default null not nullreferences genreon delete cascade,constraint artist_genre_uxunique (artist_id, genre_id));`)if err != nil {return err}return forceFullRescan(ctx, tx)}func downAddGenreTables(_ context.Context, _ *sql.Tx) error {return nil}