using ClaudeDo.Data.Models; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace ClaudeDo.Data.Configuration; public class AppSettingsEntityConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("app_settings"); builder.HasKey(s => s.Id); builder.Property(s => s.Id).HasColumnName("id").ValueGeneratedNever(); builder.Property(s => s.DefaultClaudeInstructions) .HasColumnName("default_claude_instructions").IsRequired().HasDefaultValue(string.Empty); builder.Property(s => s.DefaultModel) .HasColumnName("default_model").IsRequired().HasDefaultValue("sonnet"); builder.Property(s => s.DefaultMaxTurns) .HasColumnName("default_max_turns").IsRequired().HasDefaultValue(30); builder.Property(s => s.DefaultPermissionMode) .HasColumnName("default_permission_mode").IsRequired().HasDefaultValue("bypassPermissions"); builder.Property(s => s.WorktreeStrategy) .HasColumnName("worktree_strategy").IsRequired().HasDefaultValue("sibling"); builder.Property(s => s.CentralWorktreeRoot) .HasColumnName("central_worktree_root"); builder.Property(s => s.WorktreeAutoCleanupEnabled) .HasColumnName("worktree_auto_cleanup_enabled").IsRequired().HasDefaultValue(false); builder.Property(s => s.WorktreeAutoCleanupDays) .HasColumnName("worktree_auto_cleanup_days").IsRequired().HasDefaultValue(7); builder.Property(s => s.RepoImportFolders) .HasColumnName("repo_import_folders"); builder.HasData(new AppSettingsEntity { Id = AppSettingsEntity.SingletonId }); } }