Add skill management system: implement Skill and PetSkill models, create SkillController, and update ApplicationDbContext for skills
This commit is contained in:
@@ -12,6 +12,9 @@ namespace PetCompanion.Data
|
||||
public DbSet<Pet> Pets { get; set; }
|
||||
public DbSet<PetStats> PetStats { get; set; }
|
||||
public DbSet<Resources> Resources { get; set; }
|
||||
public DbSet<Skill> Skills { get; set; }
|
||||
public DbSet<SkillEffect> SkillEffects { get; set; }
|
||||
public DbSet<PetSkill> PetSkills { get; set; }
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
@@ -29,6 +32,32 @@ namespace PetCompanion.Data
|
||||
.HasConversion(
|
||||
v => v != DateTime.MinValue ? v.ToUniversalTime() : v,
|
||||
v => v != DateTime.MinValue ? DateTime.SpecifyKind(v, DateTimeKind.Utc) : v);
|
||||
|
||||
modelBuilder.Entity<PetSkill>()
|
||||
.HasOne(ps => ps.Pet)
|
||||
.WithMany(p => p.Skills)
|
||||
.HasForeignKey(ps => ps.PetId);
|
||||
|
||||
modelBuilder.Entity<PetSkill>()
|
||||
.HasOne(ps => ps.Skill)
|
||||
.WithMany(s => s.PetSkills)
|
||||
.HasForeignKey(ps => ps.SkillId);
|
||||
|
||||
modelBuilder.Entity<SkillEffect>()
|
||||
.HasOne(se => se.Skill)
|
||||
.WithMany(s => s.Effects)
|
||||
.HasForeignKey(se => se.SkillId);
|
||||
|
||||
// Seed initial skills
|
||||
var skills = SkillsData.GetInitialSkills();
|
||||
foreach (var skill in skills)
|
||||
{
|
||||
modelBuilder.Entity<Skill>().HasData(skill);
|
||||
foreach (var effect in skill.Effects)
|
||||
{
|
||||
modelBuilder.Entity<SkillEffect>().HasData(effect);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user