diff --git a/src/ClaudeDo.Data/ClaudeDoDbContext.cs b/src/ClaudeDo.Data/ClaudeDoDbContext.cs index bafa60e..ba196da 100644 --- a/src/ClaudeDo.Data/ClaudeDoDbContext.cs +++ b/src/ClaudeDo.Data/ClaudeDoDbContext.cs @@ -19,6 +19,8 @@ public class ClaudeDoDbContext : DbContext public DbSet Subtasks => Set(); public DbSet AppSettings => Set(); public DbSet PrimeSchedules => Set(); + public DbSet DailyNotes => Set(); + public DbSet WeekReports => Set(); private static readonly ValueConverter UtcConverter = new(v => v, v => DateTime.SpecifyKind(v, DateTimeKind.Utc)); diff --git a/src/ClaudeDo.Data/Configuration/AppSettingsEntityConfiguration.cs b/src/ClaudeDo.Data/Configuration/AppSettingsEntityConfiguration.cs index b9a0ed9..a1f9e91 100644 --- a/src/ClaudeDo.Data/Configuration/AppSettingsEntityConfiguration.cs +++ b/src/ClaudeDo.Data/Configuration/AppSettingsEntityConfiguration.cs @@ -37,6 +37,10 @@ public class AppSettingsEntityConfiguration : IEntityTypeConfiguration s.RepoImportFolders) .HasColumnName("repo_import_folders"); + builder.Property(s => s.ReportExcludedPaths).HasColumnName("report_excluded_paths"); + builder.Property(s => s.StandupWeekday).HasColumnName("standup_weekday") + .IsRequired().HasDefaultValue((int)DayOfWeek.Wednesday); + builder.HasData(new AppSettingsEntity { Id = AppSettingsEntity.SingletonId }); } } diff --git a/src/ClaudeDo.Data/Configuration/DailyNoteEntityConfiguration.cs b/src/ClaudeDo.Data/Configuration/DailyNoteEntityConfiguration.cs new file mode 100644 index 0000000..c85bcdb --- /dev/null +++ b/src/ClaudeDo.Data/Configuration/DailyNoteEntityConfiguration.cs @@ -0,0 +1,20 @@ +using ClaudeDo.Data.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace ClaudeDo.Data.Configuration; + +public class DailyNoteEntityConfiguration : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("daily_notes"); + builder.HasKey(n => n.Id); + builder.Property(n => n.Id).HasColumnName("id").ValueGeneratedNever(); + builder.Property(n => n.Date).HasColumnName("note_date").IsRequired(); + builder.Property(n => n.Text).HasColumnName("text").IsRequired(); + builder.Property(n => n.SortOrder).HasColumnName("sort_order").IsRequired(); + builder.Property(n => n.CreatedAt).HasColumnName("created_at").IsRequired(); + builder.HasIndex(n => n.Date); + } +} diff --git a/src/ClaudeDo.Data/Configuration/WeekReportEntityConfiguration.cs b/src/ClaudeDo.Data/Configuration/WeekReportEntityConfiguration.cs new file mode 100644 index 0000000..06ebd20 --- /dev/null +++ b/src/ClaudeDo.Data/Configuration/WeekReportEntityConfiguration.cs @@ -0,0 +1,20 @@ +using ClaudeDo.Data.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Builders; + +namespace ClaudeDo.Data.Configuration; + +public class WeekReportEntityConfiguration : IEntityTypeConfiguration +{ + public void Configure(EntityTypeBuilder builder) + { + builder.ToTable("week_reports"); + builder.HasKey(r => r.Id); + builder.Property(r => r.Id).HasColumnName("id").ValueGeneratedNever(); + builder.Property(r => r.StartDate).HasColumnName("start_date").IsRequired(); + builder.Property(r => r.EndDate).HasColumnName("end_date").IsRequired(); + builder.Property(r => r.Markdown).HasColumnName("markdown").IsRequired(); + builder.Property(r => r.GeneratedAt).HasColumnName("generated_at").IsRequired(); + builder.HasIndex(r => new { r.StartDate, r.EndDate }).IsUnique(); + } +}