using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace ManagerService.Migrations
{
///
public partial class UnifyStatsRetentionTo13Months : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.UpdateData(
table: "SubscriptionPlans",
keyColumn: "Id",
keyValue: "plan-essentiel",
column: "StatsHistoryDays",
value: 395);
migrationBuilder.UpdateData(
table: "SubscriptionPlans",
keyColumn: "Id",
keyValue: "plan-premium",
column: "StatsHistoryDays",
value: 395);
migrationBuilder.UpdateData(
table: "SubscriptionPlans",
keyColumn: "Id",
keyValue: "plan-standard",
column: "StatsHistoryDays",
value: 395);
// Les quotas sont copiés du plan vers l'instance à la création, et c'est
// l'instance que lit StatsController. Sans cette reprise, les clients
// existants resteraient plafonnés à 30 jours malgré le changement de plan.
migrationBuilder.Sql(@"
UPDATE ""Instances"" i
SET ""StatsHistoryDays"" = p.""StatsHistoryDays""
FROM ""SubscriptionPlans"" p
WHERE i.""SubscriptionPlanId"" = p.""Id"" AND i.""HasStats"" = true;");
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.UpdateData(
table: "SubscriptionPlans",
keyColumn: "Id",
keyValue: "plan-essentiel",
column: "StatsHistoryDays",
value: 30);
migrationBuilder.UpdateData(
table: "SubscriptionPlans",
keyColumn: "Id",
keyValue: "plan-premium",
column: "StatsHistoryDays",
value: 0);
migrationBuilder.UpdateData(
table: "SubscriptionPlans",
keyColumn: "Id",
keyValue: "plan-standard",
column: "StatsHistoryDays",
value: 30);
migrationBuilder.Sql(@"
UPDATE ""Instances"" i
SET ""StatsHistoryDays"" = p.""StatsHistoryDays""
FROM ""SubscriptionPlans"" p
WHERE i.""SubscriptionPlanId"" = p.""Id"" AND i.""HasStats"" = true;");
}
}
}