using ClaudeTest.Domain.Common; using Microsoft.EntityFrameworkCore; namespace ClaudeTest.Infrastructure.Persistence; public class AppDbContext : DbContext { public AppDbContext(DbContextOptions options) : base(options) { } public override int SaveChanges() { SetTimestamps(); return base.SaveChanges(); } public override Task SaveChangesAsync(CancellationToken cancellationToken = default) { SetTimestamps(); return base.SaveChangesAsync(cancellationToken); } private void SetTimestamps() { var entries = ChangeTracker.Entries(); foreach (var entry in entries) { switch (entry.State) { case EntityState.Added: entry.Entity.Created = DateTime.UtcNow; entry.Entity.Updated = DateTime.UtcNow; break; case EntityState.Modified: entry.Entity.Updated = DateTime.UtcNow; break; } } } }