using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Migrations.Operations; using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders; using Oqtane.Databases.Interfaces; namespace Oqtane.Migrations.EntityBuilders { public class SearchContentPropertyEntityBuilder : BaseEntityBuilder { private const string _entityTableName = "SearchContentProperty"; private readonly PrimaryKey _primaryKey = new("PK_SearchContentProperty", x => x.PropertyId); private readonly ForeignKey _searchContentForeignKey = new("FK_SearchContentProperty_SearchContent", x => x.SearchContentId, "SearchContent", "SearchContentId", ReferentialAction.Cascade); public SearchContentPropertyEntityBuilder(MigrationBuilder migrationBuilder, IDatabase database) : base(migrationBuilder, database) { EntityTableName = _entityTableName; PrimaryKey = _primaryKey; ForeignKeys.Add(_searchContentForeignKey); } protected override SearchContentPropertyEntityBuilder BuildTable(ColumnsBuilder table) { PropertyId = AddAutoIncrementColumn(table, "PropertyId"); SearchContentId = AddIntegerColumn(table, "SearchContentId"); Name = AddStringColumn(table, "Name", 50); Value = AddStringColumn(table, "Value", 50); return this; } public OperationBuilder PropertyId { get; private set; } public OperationBuilder SearchContentId { get; private set; } public OperationBuilder Name { get; private set; } public OperationBuilder Value { get; private set; } } }