feat(data): configure daily note + week report tables

This commit is contained in:
mika kuns
2026-06-03 09:26:00 +02:00
parent 10d86b4bd6
commit d9e5d2600b
4 changed files with 46 additions and 0 deletions

View File

@@ -19,6 +19,8 @@ public class ClaudeDoDbContext : DbContext
public DbSet<SubtaskEntity> Subtasks => Set<SubtaskEntity>(); public DbSet<SubtaskEntity> Subtasks => Set<SubtaskEntity>();
public DbSet<AppSettingsEntity> AppSettings => Set<AppSettingsEntity>(); public DbSet<AppSettingsEntity> AppSettings => Set<AppSettingsEntity>();
public DbSet<PrimeScheduleEntity> PrimeSchedules => Set<PrimeScheduleEntity>(); public DbSet<PrimeScheduleEntity> PrimeSchedules => Set<PrimeScheduleEntity>();
public DbSet<DailyNoteEntity> DailyNotes => Set<DailyNoteEntity>();
public DbSet<WeekReportEntity> WeekReports => Set<WeekReportEntity>();
private static readonly ValueConverter<DateTime, DateTime> UtcConverter = private static readonly ValueConverter<DateTime, DateTime> UtcConverter =
new(v => v, v => DateTime.SpecifyKind(v, DateTimeKind.Utc)); new(v => v, v => DateTime.SpecifyKind(v, DateTimeKind.Utc));

View File

@@ -37,6 +37,10 @@ public class AppSettingsEntityConfiguration : IEntityTypeConfiguration<AppSettin
builder.Property(s => s.RepoImportFolders) builder.Property(s => s.RepoImportFolders)
.HasColumnName("repo_import_folders"); .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 }); builder.HasData(new AppSettingsEntity { Id = AppSettingsEntity.SingletonId });
} }
} }

View File

@@ -0,0 +1,20 @@
using ClaudeDo.Data.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace ClaudeDo.Data.Configuration;
public class DailyNoteEntityConfiguration : IEntityTypeConfiguration<DailyNoteEntity>
{
public void Configure(EntityTypeBuilder<DailyNoteEntity> 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);
}
}

View File

@@ -0,0 +1,20 @@
using ClaudeDo.Data.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace ClaudeDo.Data.Configuration;
public class WeekReportEntityConfiguration : IEntityTypeConfiguration<WeekReportEntity>
{
public void Configure(EntityTypeBuilder<WeekReportEntity> 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();
}
}