feat(data): configure daily note + week report tables
This commit is contained in:
@@ -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));
|
||||||
|
|||||||
@@ -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 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user