using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Migrations.Operations; using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders; using Oqtane.Databases.Interfaces; using Oqtane.Migrations; using Oqtane.Migrations.EntityBuilders; namespace SZUAbsolventenverein.Module.HallOfFame.Migrations.EntityBuilders { public class HallOfFameEntityBuilder : AuditableBaseEntityBuilder { private const string _entityTableName = "SZUAbsolventenvereinHallOfFame"; private readonly PrimaryKey _primaryKey = new("PK_SZUAbsolventenvereinHallOfFame", x => x.HallOfFameId); private readonly ForeignKey _moduleForeignKey = new("FK_SZUAbsolventenvereinHallOfFame_Module", x => x.ModuleId, "Module", "ModuleId", ReferentialAction.Cascade); public HallOfFameEntityBuilder(MigrationBuilder migrationBuilder, IDatabase database) : base(migrationBuilder, database) { EntityTableName = _entityTableName; PrimaryKey = _primaryKey; ForeignKeys.Add(_moduleForeignKey); } protected override HallOfFameEntityBuilder BuildTable(ColumnsBuilder table) { HallOfFameId = AddAutoIncrementColumn(table,"HallOfFameId"); ModuleId = AddIntegerColumn(table,"ModuleId"); Name = AddMaxStringColumn(table,"Name"); AddAuditableColumns(table); return this; } public OperationBuilder HallOfFameId { get; set; } public OperationBuilder ModuleId { get; set; } public OperationBuilder Name { get; set; } } }