using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Migrations.Operations; using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders; using Oqtane.Databases.Interfaces; using Oqtane.Interfaces; // ReSharper disable MemberCanBePrivate.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace Oqtane.Migrations.EntityBuilders { public class SiteEntityBuilder : DeletableAuditableBaseEntityBuilder { private const string _entityTableName = "Site"; private readonly PrimaryKey _primaryKey = new("PK_Site", x => x.SiteId); public SiteEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database) { EntityTableName = _entityTableName; PrimaryKey = _primaryKey; } protected override SiteEntityBuilder BuildTable(ColumnsBuilder table) { SiteId = AddAutoIncrementColumn(table,"SiteId"); TenantId = AddIntegerColumn(table,"TenantId"); Name = AddStringColumn(table,"Name", 200); LogoFileId = AddIntegerColumn(table,"LogoFileId", true); FaviconFileId = AddIntegerColumn(table,"FaviconFileId", true); DefaultThemeType = AddStringColumn(table,"DefaultThemeType", 200); DefaultContainerType = AddStringColumn(table,"DefaultContainerType", 200); PwaIsEnabled = AddBooleanColumn(table,"PwaIsEnabled"); PwaAppIconFileId = AddIntegerColumn(table,"PwaAppIconFileId", true); PwaSplashIconFileId = AddIntegerColumn(table,"PwaSplashIconFileId", true); AllowRegistration = AddBooleanColumn(table,"AllowRegistration"); AddAuditableColumns(table); AddDeletableColumns(table); return this; } public OperationBuilder SiteId { get; private set; } public OperationBuilder TenantId { get; private set; } public OperationBuilder Name { get; private set; } public OperationBuilder LogoFileId { get; private set; } public OperationBuilder FaviconFileId { get; private set; } public OperationBuilder DefaultThemeType { get; private set; } public OperationBuilder DefaultContainerType { get; private set; } public OperationBuilder PwaIsEnabled { get; private set; } public OperationBuilder PwaAppIconFileId { get; private set; } public OperationBuilder PwaSplashIconFileId { get; private set; } public OperationBuilder AllowRegistration { get; private set; } } }