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 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 = AddAutoIncrementColumn(table,"JobLogId"); JobId = AddIntegerColumn(table,"JobId"); StartDate = AddDateTimeColumn(table,"StartDate"); FinishDate = AddDateTimeColumn(table,"FinishDate", true); Succeeded = AddBooleanColumn(table,"Succeeded", true); Notes = AddMaxStringColumn(table,"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; } } }