You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1011 lines
48 KiB
C#
1011 lines
48 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Microsoft.EntityFrameworkCore.Metadata;
|
|
|
|
namespace Haoliang.Data.Migrations
|
|
{
|
|
public partial class InitialCreate : Migration
|
|
{
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.CreateTable(
|
|
name: "Alarms",
|
|
columns: table => new
|
|
{
|
|
AlarmId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
DeviceId = table.Column<int>(type: "int", nullable: true),
|
|
DeviceCode = table.Column<string>(type: "varchar(100)", nullable: true),
|
|
AlarmType = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
AlarmSeverity = table.Column<int>(type: "int", nullable: false),
|
|
Title = table.Column<string>(type: "varchar(255)", nullable: false),
|
|
Description = table.Column<string>(type: "text", nullable: true),
|
|
AlarmStatus = table.Column<int>(type: "int", nullable: false),
|
|
CreateTime = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
AcknowledgedTime = table.Column<DateTime>(type: "datetime", nullable: true),
|
|
ResolvedTime = table.Column<DateTime>(type: "datetime", nullable: true),
|
|
AcknowledgeNote = table.Column<string>(type: "text", nullable: true),
|
|
ResolutionNote = table.Column<string>(type: "text", nullable: true),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Alarms", x => x.AlarmId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "AlarmNotifications",
|
|
columns: table => new
|
|
{
|
|
NotificationId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
AlarmId = table.Column<int>(type: "int", nullable: false),
|
|
NotificationType = table.Column<int>(type: "int", nullable: false),
|
|
Recipient = table.Column<string>(type: "varchar(255)", nullable: false),
|
|
Message = table.Column<string>(type: "text", nullable: false),
|
|
Status = table.Column<int>(type: "int", nullable: false),
|
|
SendTime = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
ErrorMessage = table.Column<string>(type: "text", nullable: true),
|
|
RetryTime = table.Column<DateTime>(type: "datetime", nullable: true),
|
|
RetryCount = table.Column<int>(type: "int", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_AlarmNotifications", x => x.NotificationId);
|
|
table.ForeignKey(
|
|
name: "FK_AlarmNotifications_Alarms",
|
|
column: x => x.AlarmId,
|
|
principalTable: "Alarms",
|
|
principalColumn: "AlarmId",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "AlarmRules",
|
|
columns: table => new
|
|
{
|
|
RuleId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
RuleName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
DeviceId = table.Column<int>(type: "int", nullable: true),
|
|
AlarmType = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
Condition = table.Column<string>(type: "text", nullable: false),
|
|
Threshold = table.Column<string>(type: "varchar(100)", nullable: true),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_AlarmRules", x => x.RuleId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "CollectionConfigs",
|
|
columns: table => new
|
|
{
|
|
ConfigId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
DeviceId = table.Column<int>(type: "int", nullable: false),
|
|
CollectionInterval = table.Column<int>(type: "int", nullable: false),
|
|
TimeoutSeconds = table.Column<int>(type: "int", nullable: false),
|
|
RetryAttempts = table.Column<int>(type: "int", nullable: false),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_CollectionConfigs", x => x.ConfigId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "CollectionLogs",
|
|
columns: table => new
|
|
{
|
|
LogId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
DeviceId = table.Column<int>(type: "int", nullable: false),
|
|
LogLevel = table.Column<int>(type: "int", nullable: false),
|
|
LogCategory = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
LogMessage = table.Column<string>(type: "text", nullable: false),
|
|
LogData = table.Column<string>(type: "text", nullable: true),
|
|
LogTime = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_CollectionLogs", x => x.LogId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "CollectionResults",
|
|
columns: table => new
|
|
{
|
|
ResultId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
DeviceId = table.Column<int>(type: "int", nullable: false),
|
|
IsSuccess = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
RawData = table.Column<string>(type: "text", nullable: true),
|
|
ParsedData = table.Column<string>(type: "text", nullable: true),
|
|
CollectionTime = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
ResponseTimeMs = table.Column<int>(type: "int", nullable: true),
|
|
DataSize = table.Column<int>(type: "int", nullable: true),
|
|
ErrorMessage = table.Column<string>(type: "text", nullable: true),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_CollectionResults", x => x.ResultId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "CollectionTasks",
|
|
columns: table => new
|
|
{
|
|
TaskId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
DeviceId = table.Column<int>(type: "int", nullable: false),
|
|
TaskName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
Status = table.Column<string>(type: "varchar(20)", nullable: false),
|
|
ScheduledTime = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
StartTime = table.Column<DateTime>(type: "datetime", nullable: true),
|
|
EndTime = table.Column<DateTime>(type: "datetime", nullable: true),
|
|
IsSuccess = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
ErrorMessage = table.Column<string>(type: "text", nullable: true),
|
|
RetryCount = table.Column<int>(type: "int", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_CollectionTasks", x => x.TaskId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "CNCDevices",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
DeviceCode = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
DeviceName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
IPAddress = table.Column<string>(type: "varchar(15)", nullable: false),
|
|
HttpUrl = table.Column<string>(type: "varchar(255)", nullable: false),
|
|
CollectionInterval = table.Column<int>(type: "int", nullable: false),
|
|
TemplateId = table.Column<int>(type: "int", nullable: false),
|
|
IsAvailable = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
IsOnline = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
LastCollectionTime = table.Column<DateTime>(type: "datetime", nullable: true),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_CNCDevices", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "CNCTemplates",
|
|
columns: table => new
|
|
{
|
|
TemplateId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
TemplateName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
BrandName = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
Version = table.Column<string>(type: "varchar(20)", nullable: false),
|
|
Description = table.Column<string>(type: "text", nullable: true),
|
|
TagsJson = table.Column<string>(type: "text", nullable: true),
|
|
DataProcessingRulesJson = table.Column<string>(type: "text", nullable: true),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_CNCTemplates", x => x.TemplateId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "DeviceAssignments",
|
|
columns: table => new
|
|
{
|
|
AssignmentId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
DeviceId = table.Column<int>(type: "int", nullable: false),
|
|
EmployeeId = table.Column<int>(type: "int", nullable: false),
|
|
AssignmentDate = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
AssignmentType = table.Column<string>(type: "varchar(20)", nullable: false),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_DeviceAssignments", x => x.AssignmentId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "DeviceStatus",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
DeviceId = table.Column<int>(type: "int", nullable: false),
|
|
Status = table.Column<string>(type: "varchar(20)", nullable: false),
|
|
IsRunning = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
NCProgram = table.Column<string>(type: "varchar(100)", nullable: true),
|
|
CumulativeCount = table.Column<int>(type: "int", nullable: false),
|
|
OperatingMode = table.Column<string>(type: "varchar(20)", nullable: true),
|
|
RecordTime = table.Column<DateTime>(type: "datetime", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_DeviceStatus", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Employees",
|
|
columns: table => new
|
|
{
|
|
EmployeeId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
FirstName = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
LastName = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
Department = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
Position = table.Column<string>(type: "varchar(50)", nullable: true),
|
|
HireDate = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Employees", x => x.EmployeeId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "LogEntries",
|
|
columns: table => new
|
|
{
|
|
LogId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
LogLevel = table.Column<int>(type: "int", nullable: false),
|
|
Category = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
Message = table.Column<string>(type: "text", nullable: false),
|
|
ExceptionMessage = table.Column<string>(type: "text", nullable: true),
|
|
StackTrace = table.Column<string>(type: "text", nullable: true),
|
|
Properties = table.Column<string>(type: "json", nullable: true),
|
|
Timestamp = table.Column<DateTime>(type: "datetime", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_LogEntries", x => x.LogId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "PasswordResets",
|
|
columns: table => new
|
|
{
|
|
ResetId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
UserId = table.Column<int>(type: "int", nullable: false),
|
|
Token = table.Column<string>(type: "varchar(255)", nullable: false),
|
|
ExpiresAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
IsUsed = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_PasswordResets", x => x.ResetId);
|
|
table.ForeignKey(
|
|
name: "FK_PasswordResets_Users",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Permissions",
|
|
columns: table => new
|
|
{
|
|
PermissionId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
PermissionName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
Description = table.Column<string>(type: "text", nullable: true),
|
|
Category = table.Column<string>(type: "varchar(50)", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Permissions", x => x.PermissionId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ProductionRecords",
|
|
columns: table => new
|
|
{
|
|
RecordId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
DeviceId = table.Column<int>(type: "int", nullable: false),
|
|
DeviceName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
ProgramName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
Quantity = table.Column<int>(type: "int", nullable: false),
|
|
ProductionDate = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
ProductionTime = table.Column<TimeSpan>(type: "time", nullable: false),
|
|
IsCompleted = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
Operator = table.Column<string>(type: "varchar(50)", nullable: true),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ProductionRecords", x => x.RecordId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ProgramProductionSummaries",
|
|
columns: table => new
|
|
{
|
|
SummaryId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
DeviceId = table.Column<int>(type: "int", nullable: false),
|
|
DeviceName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
ProgramName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
Quantity = table.Column<int>(type: "int", nullable: false),
|
|
ProductionDate = table.Column<DateTime>(type: "date", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ProgramProductionSummaries", x => x.SummaryId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ProductionSummaries",
|
|
columns: table => new
|
|
{
|
|
SummaryId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
ProductionDate = table.Column<DateTime>(type: "date", nullable: false),
|
|
DeviceId = table.Column<int>(type: "int", nullable: false),
|
|
DeviceName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
TotalQuantity = table.Column<int>(type: "int", nullable: false),
|
|
ProgramCount = table.Column<int>(type: "int", nullable: false),
|
|
TotalProductionTime = table.Column<TimeSpan>(type: "time", nullable: true),
|
|
QualityRate = table.Column<decimal>(type: "decimal(5,2)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ProductionSummaries", x => x.SummaryId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Roles",
|
|
columns: table => new
|
|
{
|
|
RoleId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
RoleName = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
Description = table.Column<string>(type: "text", nullable: true),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Roles", x => x.RoleId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ScheduledTasks",
|
|
columns: table => new
|
|
{
|
|
TaskId = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
TaskName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
CronExpression = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
Description = table.Column<string>(type: "text", nullable: true),
|
|
TaskStatus = table.Column<int>(type: "int", nullable: false),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
LastRunAt = table.Column<DateTime>(type: "datetime", nullable: true),
|
|
NextRunTime = table.Column<DateTime>(type: "datetime", nullable: true),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
CompletedAt = table.Column<DateTime>(type: "datetime", nullable: true),
|
|
ErrorMessage = table.Column<string>(type: "text", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ScheduledTasks", x => x.TaskId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "StatisticResults",
|
|
columns: table => new
|
|
{
|
|
ResultId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
RuleId = table.Column<int>(type: "int", nullable: false),
|
|
ResultDate = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
ResultValue = table.Column<decimal>(type: "decimal(18,4)", nullable: false),
|
|
ResultData = table.Column<string>(type: "json", nullable: true),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_StatisticResults", x => x.ResultId);
|
|
table.ForeignKey(
|
|
name: "FK_StatisticResults_StatisticRules",
|
|
column: x => x.RuleId,
|
|
principalTable: "StatisticRules",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "StatisticRules",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
RuleName = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
Description = table.Column<string>(type: "text", nullable: true),
|
|
MetricFormula = table.Column<string>(type: "text", nullable: false),
|
|
GroupByDimensions = table.Column<string>(type: "text", nullable: false),
|
|
IsEnabled = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_StatisticRules", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "SystemConfigs",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
ConfigKey = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
ConfigValue = table.Column<string>(type: "text", nullable: false),
|
|
Description = table.Column<string>(type: "text", nullable: true),
|
|
Category = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
IsDefault = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_SystemConfigs", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "TagMappings",
|
|
columns: table => new
|
|
{
|
|
MappingId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
TemplateId = table.Column<int>(type: "int", nullable: false),
|
|
DeviceTagId = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
SystemTagId = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
DataType = table.Column<string>(type: "varchar(20)", nullable: false),
|
|
ConversionFormula = table.Column<string>(type: "varchar(100)", nullable: true),
|
|
Description = table.Column<string>(type: "text", nullable: true),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_TagMappings", x => x.MappingId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "TemplateFieldMappings",
|
|
columns: table => new
|
|
{
|
|
MappingId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
TemplateId = table.Column<int>(type: "int", nullable: false),
|
|
FieldName = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
FieldValue = table.Column<string>(type: "text", nullable: true),
|
|
DataType = table.Column<string>(type: "varchar(20)", nullable: false),
|
|
IsRequired = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
ValidationRegex = table.Column<string>(type: "varchar(200)", nullable: true),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_TemplateFieldMappings", x => x.MappingId);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "TaskExecutionResults",
|
|
columns: table => new
|
|
{
|
|
ExecutionId = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
TaskId = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
Status = table.Column<int>(type: "int", nullable: false),
|
|
ExecutionTime = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
ExecutionDurationMs = table.Column<TimeSpan>(type: "time", nullable: true),
|
|
ErrorMessage = table.Column<string>(type: "text", nullable: true),
|
|
ResultData = table.Column<string>(type: "json", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_TaskExecutionResults", x => x.ExecutionId);
|
|
table.ForeignKey(
|
|
name: "FK_TaskExecutionResults_ScheduledTasks",
|
|
column: x => x.TaskId,
|
|
principalTable: "ScheduledTasks",
|
|
principalColumn: "TaskId",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Users",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "int", nullable: false)
|
|
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityIncrement),
|
|
Username = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
Email = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
PasswordHash = table.Column<string>(type: "varchar(255)", nullable: false),
|
|
FirstName = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
LastName = table.Column<string>(type: "varchar(50)", nullable: false),
|
|
Department = table.Column<string>(type: "varchar(50)", nullable: true),
|
|
RoleId = table.Column<int>(type: "int", nullable: false),
|
|
IsActive = table.Column<bool>(type: "tinyint(1)", nullable: false),
|
|
LastLogin = table.Column<DateTime>(type: "datetime", nullable: true),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
UpdatedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Users", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Users_Roles",
|
|
column: x => x.RoleId,
|
|
principalTable: "Roles",
|
|
principalColumn: "RoleId",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "UserPermissions",
|
|
columns: table => new
|
|
{
|
|
UserId = table.Column<int>(type: "int", nullable: false),
|
|
PermissionId = table.Column<int>(type: "int", nullable: false),
|
|
AssignedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
AssignedBy = table.Column<int>(type: "int", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_UserPermissions", x => new { x.UserId, x.PermissionId });
|
|
table.ForeignKey(
|
|
name: "FK_UserPermissions_Permissions",
|
|
column: x => x.PermissionId,
|
|
principalTable: "Permissions",
|
|
principalColumn: "PermissionId",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_UserPermissions_Users",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "RolePermissions",
|
|
columns: table => new
|
|
{
|
|
RoleId = table.Column<int>(type: "int", nullable: false),
|
|
PermissionId = table.Column<int>(type: "int", nullable: false),
|
|
AssignedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
AssignedBy = table.Column<int>(type: "int", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_RolePermissions", x => new { x.RoleId, x.PermissionId });
|
|
table.ForeignKey(
|
|
name: "FK_RolePermissions_Permissions",
|
|
column: x => x.PermissionId,
|
|
principalTable: "Permissions",
|
|
principalColumn: "PermissionId",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_RolePermissions_Roles",
|
|
column: x => x.RoleId,
|
|
principalTable: "Roles",
|
|
principalColumn: "RoleId",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "UserSessions",
|
|
columns: table => new
|
|
{
|
|
SessionId = table.Column<string>(type: "varchar(100)", nullable: false),
|
|
UserId = table.Column<int>(type: "int", nullable: false),
|
|
RefreshToken = table.Column<string>(type: "varchar(255)", nullable: false),
|
|
ExpiresAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
CreatedAt = table.Column<DateTime>(type: "datetime", nullable: false),
|
|
LastAccessedAt = table.Column<DateTime>(type: "datetime", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_UserSessions", x => x.SessionId);
|
|
table.ForeignKey(
|
|
name: "FK_UserSessions_Users",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AlarmNotifications_AlarmId",
|
|
table: "AlarmNotifications",
|
|
column: "AlarmId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_CollectionConfigs_DeviceId",
|
|
table: "CollectionConfigs",
|
|
column: "DeviceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_CollectionLogs_DeviceId",
|
|
table: "CollectionLogs",
|
|
column: "DeviceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_CollectionResults_DeviceId",
|
|
table: "CollectionResults",
|
|
column: "DeviceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_CollectionTasks_DeviceId",
|
|
table: "CollectionTasks",
|
|
column: "DeviceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_CNCDevices_TemplateId",
|
|
table: "CNCDevices",
|
|
column: "TemplateId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_DeviceAssignments_DeviceId",
|
|
table: "DeviceAssignments",
|
|
column: "DeviceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_DeviceAssignments_EmployeeId",
|
|
table: "DeviceAssignments",
|
|
column: "EmployeeId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_PasswordResets_UserId",
|
|
table: "PasswordResets",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ProductionRecords_DeviceId",
|
|
table: "ProductionRecords",
|
|
column: "DeviceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ProductionRecords_ProductionDate",
|
|
table: "ProductionRecords",
|
|
column: "ProductionDate");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ProgramProductionSummaries_DeviceId",
|
|
table: "ProgramProductionSummaries",
|
|
column: "DeviceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ProgramProductionSummaries_ProductionDate",
|
|
table: "ProgramProductionSummaries",
|
|
column: "ProductionDate");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ProductionSummaries_DeviceId",
|
|
table: "ProductionSummaries",
|
|
column: "DeviceId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ProductionSummaries_ProductionDate",
|
|
table: "ProductionSummaries",
|
|
column: "ProductionDate");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_StatisticResults_RuleId",
|
|
table: "StatisticResults",
|
|
column: "RuleId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_TagMappings_TemplateId",
|
|
table: "TagMappings",
|
|
column: "TemplateId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_TaskExecutionResults_TaskId",
|
|
table: "TaskExecutionResults",
|
|
column: "TaskId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Users_RoleId",
|
|
table: "Users",
|
|
column: "RoleId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Users_Username",
|
|
table: "Users",
|
|
column: "Username",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Users_Email",
|
|
table: "Users",
|
|
column: "Email",
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_UserPermissions_PermissionId",
|
|
table: "UserPermissions",
|
|
column: "PermissionId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_UserPermissions_UserId",
|
|
table: "UserPermissions",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_RolePermissions_PermissionId",
|
|
table: "RolePermissions",
|
|
column: "PermissionId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_RolePermissions_RoleId",
|
|
table: "RolePermissions",
|
|
column: "RoleId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_UserSessions_UserId",
|
|
table: "UserSessions",
|
|
column: "UserId");
|
|
}
|
|
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropTable(
|
|
name: "AlarmNotifications");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserPermissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "RolePermissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserSessions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "TaskExecutionResults");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "TagMappings");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ProductionSummaries");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ProgramProductionSummaries");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ProductionRecords");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "StatisticResults");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "RolePermissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserPermissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ScheduledTasks");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PasswordResets");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "TemplateFieldMappings");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserSessions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "StatisticRules");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "SystemConfigs");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Roles");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ProductionRecords");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ProgramProductionSummaries");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ProductionSummaries");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Employees");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "LogEntries");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserPermissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "RolePermissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserSessions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PasswordResets");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Permissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CollectionResults");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CollectionTasks");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CollectionLogs");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CollectionConfigs");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "TaskExecutionResults");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "TagMappings");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "TemplateFieldMappings");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ScheduledTasks");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "SystemConfigs");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "LogEntries");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PasswordResets");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Employees");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserPermissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "RolePermissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserSessions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Permissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CollectionResults");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CollectionTasks");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CollectionLogs");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CollectionConfigs");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "DeviceAssignments");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "DeviceStatus");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CNCTemplates");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CNCDevices");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "StatisticResults");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "StatisticRules");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ProductionSummaries");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ProgramProductionSummaries");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ProductionRecords");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Users");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Roles");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "TaskExecutionResults");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "TagMappings");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "TemplateFieldMappings");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "SystemConfigs");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "LogEntries");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "PasswordResets");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Employees");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserPermissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "RolePermissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserSessions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Permissions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "AlarmNotifications");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "AlarmRules");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Alarms");
|
|
}
|
|
}
|
|
} |