using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Migrations.Operations; using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders; using Oqtane.Migrations.Extensions; // ReSharper disable MemberCanBePrivate.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace Oqtane.Migrations.EntityBuilders { public class FileEntityBuilder : DeletableAuditableBaseEntityBuilder { private const string _entityTableName = "File"; private readonly PrimaryKey _primaryKey = new("PK_File", x => x.FileId); private readonly ForeignKey _folderForeignKey = new("FK_File_Folder", x => x.FolderId, "Folder", "FolderId", ReferentialAction.Cascade); public FileEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder) { EntityTableName = _entityTableName; PrimaryKey = _primaryKey; ForeignKeys.Add(_folderForeignKey); } protected override FileEntityBuilder BuildTable(ColumnsBuilder table) { FileId = table.AddAutoIncrementColumn("FileId"); FolderId = table.AddIntegerColumn("FolderId"); Name = table.AddStringColumn("Name", 50); Extension = table.AddStringColumn("Extension", 50); Size = table.AddIntegerColumn("Size"); ImageHeight = table.AddIntegerColumn("ImageHeight"); ImageWidth = table.AddIntegerColumn("ImageWidth"); AddAuditableColumns(table); AddDeletableColumns(table); return this; } public OperationBuilder FileId { get; set; } public OperationBuilder FolderId { get; set; } public OperationBuilder Name { get; set; } public OperationBuilder Extension { get; set; } public OperationBuilder Size { get; set; } public OperationBuilder ImageHeight { get; set; } public OperationBuilder ImageWidth { get; set; } } }