using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Kyoo.Postgresql.Migrations;
///
public partial class AddNextRefresh : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn(
name: "next_metadata_refresh",
table: "shows",
type: "timestamp with time zone",
nullable: true,
defaultValueSql: "now() at time zone 'utc' + interval '2 hours'"
);
migrationBuilder.AddColumn(
name: "next_metadata_refresh",
table: "seasons",
type: "timestamp with time zone",
nullable: true,
defaultValueSql: "now() at time zone 'utc' + interval '2 hours'"
);
migrationBuilder.AddColumn(
name: "next_metadata_refresh",
table: "movies",
type: "timestamp with time zone",
nullable: true,
defaultValueSql: "now() at time zone 'utc' + interval '2 hours'"
);
migrationBuilder.AddColumn(
name: "next_metadata_refresh",
table: "episodes",
type: "timestamp with time zone",
nullable: true,
defaultValueSql: "now() at time zone 'utc' + interval '2 hours'"
);
migrationBuilder.AddColumn(
name: "next_metadata_refresh",
table: "collections",
type: "timestamp with time zone",
nullable: true,
defaultValueSql: "now() at time zone 'utc' + interval '2 hours'"
);
// language=PostgreSQL
migrationBuilder.Sql(
"""
update episodes as e set external_id = (
SELECT jsonb_build_object(
'themoviedatabase', jsonb_build_object(
'ShowId', s.external_id->'themoviedatabase'->'DataId',
'Season', e.season_number,
'Episode', e.episode_number,
'Link', null
)
)
FROM shows AS s
WHERE s.id = e.show_id
);
"""
);
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(name: "next_metadata_refresh", table: "shows");
migrationBuilder.DropColumn(name: "next_metadata_refresh", table: "seasons");
migrationBuilder.DropColumn(name: "next_metadata_refresh", table: "movies");
migrationBuilder.DropColumn(name: "next_metadata_refresh", table: "episodes");
migrationBuilder.DropColumn(name: "next_metadata_refresh", table: "collections");
// language=PostgreSQL
migrationBuilder.Sql("update episodes as e set external_id = '{}';");
}
}