InfiniLore / infinilore.cs

GNU General Public License v3.0
2 stars 1 forks source link

Move seeding data to a proper service #17

Open github-actions[bot] opened 1 week ago

github-actions[bot] commented 1 week ago

📝 Todo : Move seeding data to a proper service

Description:

Code Snippet:


    protected override void OnModelCreating(ModelBuilder builder) {
        base.OnModelCreating(builder);

        //FluentApiUsage

        #region InfiniLoreUser
        builder.Entity<InfiniLoreUser>(b => {
            b.HasMany(user => user.LoreScopes).WithOne(scope => scope.User).HasForeignKey(x => x.UserId);
            b.HasMany(user => user.Multiverses).WithOne(multiverse => multiverse.User).HasForeignKey(x => x.UserId);
            b.HasMany(user => user.Universes).WithOne(universe => universe.User).HasForeignKey(x => x.UserId);
        });
        #endregion
        #region LoreScopeModel
        builder.Entity<LoreScopeModel>(b => {
            b.HasQueryFilter(model => model.SoftDeleteDate == null);
            b.HasIndex(model => new { model.Name, model.UserId }).IsUnique();
            b.HasMany(model => model.Multiverses).WithOne(multiverse => multiverse.LoreScope).HasForeignKey(x => x.LoreScopeId);
        });
        #endregion
        #region MultiverseModel
        builder.Entity<MultiverseModel>(b => {
            b.HasQueryFilter(model => model.SoftDeleteDate == null);
            b.HasIndex(model => new { model.Name, model.LoreScopeId }).IsUnique();
            b.HasMany(model => model.Universes).WithOne(universe => universe.Multiverse).HasForeignKey(x => x.MultiverseId);
        });
        #endregion
        #region UniverseModel
        builder.Entity<UniverseModel>(b => {
            b.HasQueryFilter(model => model.SoftDeleteDate == null);
            b.HasIndex(model => new { model.Name, model.MultiverseId }).IsUnique();
        });
        #endregion

        // SEEDING DATA
        // TODO Move seeding data to a proper service

        builder.Entity<IdentityRole>().HasData(
            new IdentityRole("admin") {NormalizedName = "ADMIN"},
            new IdentityRole("user") {NormalizedName = "USER"}
        );

        #region Test User
        var testUser = new InfiniLoreUser {
            Id = "d957c0f8-e90e-4068-a968-4f4b49fc165c",

File:
https://github.com/InfiniLore/infinilore.cs/blob/f267d0336122358a26b1c684fbc179b3ec901b4f/src/server/InfiniLore.Server.Database/InfiniLoreDbContext.cs#L68