pet-companion-back/Data/ApplicationDbContext.cs

35 lines
1.2 KiB
C#

using Microsoft.EntityFrameworkCore;
using pet_companion_api.Models;
namespace pet_companion_api.Data
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}
public DbSet<Pet> Pets { get; set; }
public DbSet<PetStats> PetStats { get; set; }
public DbSet<Resources> Resources { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// Configure DateTime properties to be stored as UTC
modelBuilder.Entity<Pet>()
.Property(p => p.GatherActionSince)
.HasConversion(
v => v.ToUniversalTime(),
v => DateTime.SpecifyKind(v, DateTimeKind.Utc));
modelBuilder.Entity<Pet>()
.Property(p => p.BasicActionCooldown)
.HasConversion(
v => v != DateTime.MinValue ? v.ToUniversalTime() : v,
v => v != DateTime.MinValue ? DateTime.SpecifyKind(v, DateTimeKind.Utc) : v);
}
}
}