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 JobEntityBuilder : AuditableBaseEntityBuilder { private const string _entityTableName = "Job"; private readonly PrimaryKey _primaryKey = new("PK_Job", x => x.JobId); public JobEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database) { EntityTableName = _entityTableName; PrimaryKey = _primaryKey; } protected override JobEntityBuilder BuildTable(ColumnsBuilder table) { JobId = ActiveDatabase.AddAutoIncrementColumn(table,"JobId"); Name = table.AddStringColumn("Name", 200); JobType = table.AddStringColumn("JobType", 200); Frequency = table.AddStringColumn("Frequency", 1); Interval = table.AddIntegerColumn("Interval"); StartDate = table.AddDateTimeColumn("StartDate", true); EndDate = table.AddDateTimeColumn("EndDate", true); IsEnabled = table.AddBooleanColumn("IsEnabled"); IsStarted = table.AddBooleanColumn("IsStarted"); IsExecuting = table.AddBooleanColumn("IsExecuting"); NextExecution = table.AddDateTimeColumn("NextExecution", true); RetentionHistory = table.AddIntegerColumn("RetentionHistory"); AddAuditableColumns(table); return this; } public OperationBuilder JobId { get; set; } public OperationBuilder Name { get; set; } public OperationBuilder JobType { get; set; } public OperationBuilder Frequency { get; set; } public OperationBuilder Interval { get; set; } public OperationBuilder StartDate { get; set; } public OperationBuilder EndDate { get; set; } public OperationBuilder IsEnabled { get; set; } public OperationBuilder IsStarted { get; set; } public OperationBuilder IsExecuting { get; set; } public OperationBuilder NextExecution { get; set; } public OperationBuilder RetentionHistory { get; set; } } }