using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Migrations.Operations; using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders; using Oqtane.Interfaces; using Oqtane.Migrations.Extensions; // ReSharper disable MemberCanBePrivate.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace Oqtane.Migrations.EntityBuilders { public class JobLogEntityBuilder : BaseEntityBuilder { private const string _entityTableName = "JobLog"; private readonly PrimaryKey _primaryKey = new("PK_JobLog", x => x.JobLogId); private readonly ForeignKey _jobLogForeignKey = new("FK_JobLog_Job", x => x.JobId, "Job", "JobId", ReferentialAction.Cascade); public JobLogEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database) { EntityTableName = _entityTableName; PrimaryKey = _primaryKey; ForeignKeys.Add(_jobLogForeignKey); } protected override JobLogEntityBuilder BuildTable(ColumnsBuilder table) { JobLogId = ActiveDatabase.AddAutoIncrementColumn(table,"JobLogId"); JobId = table.AddIntegerColumn("JobId"); StartDate = table.AddDateTimeColumn("StartDate"); FinishDate = table.AddDateTimeColumn("FinishDate", true); Succeeded = table.AddBooleanColumn("Succeeded", true); Notes = table.AddMaxStringColumn("Notes", true); return this; } public OperationBuilder JobLogId { get; private set; } public OperationBuilder JobId { get; private set; } public OperationBuilder StartDate { get; private set; } public OperationBuilder FinishDate { get; private set; } public OperationBuilder Succeeded { get; private set; } public OperationBuilder Notes { get; private set; } } }