Drei neue app_settings-Spalten (Migration AddPowerUseWindow): power_use_window_start/end (HH:mm, lokal, nullable) und power_use_handoff_pct (NOT NULL DEFAULT 95, geclampt 50-99). Die Fensterlogik liegt als reine Funktion in PowerUseWindow (Contains/Normalize/IsOpen): beide Grenzen leer oder nur eine gesetzt = rund um die Uhr, Ende vor Start wrappt ueber Mitternacht, Grenzen halboffen. Geprueft wird in ComposeHandlerPromptAsync, also pro Phase zum Zeitpunkt des Prompt-Baus - die Uhr ist per Func<DateTime> injizierbar. Bedienung im Usage-Monitor neben dem PowerUse-Toggle (Commit auf Blur/Enter, ein Write fuer alle vier Felder); in Settings->General unsichtbar, aber load->save durchgereicht. Nebenbefund, gleicher Pfad: AppSettingsRepository.UpdateAsync kopiert Feld fuer Feld und hat ModelPresets, PowerUseEnabled und ListHandlerMaxHandoffs nie geschrieben - jeder Save dieser drei war still wirkungslos. Mit ergaenzt und per Round-trip-Test gepinnt.
57 lines
1.7 KiB
C#
57 lines
1.7 KiB
C#
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
#nullable disable
|
|
|
|
namespace ClaudeDo.Data.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class AddPowerUseWindow : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.AddColumn<int>(
|
|
name: "power_use_handoff_pct",
|
|
table: "app_settings",
|
|
type: "INTEGER",
|
|
nullable: false,
|
|
defaultValue: 95);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "power_use_window_end",
|
|
table: "app_settings",
|
|
type: "TEXT",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "power_use_window_start",
|
|
table: "app_settings",
|
|
type: "TEXT",
|
|
nullable: true);
|
|
|
|
migrationBuilder.UpdateData(
|
|
table: "app_settings",
|
|
keyColumn: "id",
|
|
keyValue: 1,
|
|
columns: new[] { "power_use_handoff_pct", "power_use_window_end", "power_use_window_start" },
|
|
values: new object[] { 95, null, null });
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropColumn(
|
|
name: "power_use_handoff_pct",
|
|
table: "app_settings");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "power_use_window_end",
|
|
table: "app_settings");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "power_use_window_start",
|
|
table: "app_settings");
|
|
}
|
|
}
|
|
}
|