@bslau/hmm_prisma_schema 1.1.17 → 1.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bslau/hmm_prisma_schema",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.19",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"author": "CIPA Development Team",
|
|
6
6
|
"license": "ISC",
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
"scripts": {
|
|
12
12
|
"generate": "npx prisma generate",
|
|
13
13
|
"postinstall": "npm run generate",
|
|
14
|
+
"prisma:apply": "npx prisma migrate dev",
|
|
15
|
+
"prisma:create": "npx prisma migrate dev --create-only",
|
|
14
16
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
15
17
|
},
|
|
16
18
|
"types": "./index.d.ts",
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
BEGIN TRY
|
|
2
|
+
|
|
3
|
+
BEGIN TRAN;
|
|
4
|
+
|
|
5
|
+
-- AlterTable
|
|
6
|
+
ALTER TABLE [dbo].[HotMetal] ADD [BF6WeighBridgeWeight] INT,
|
|
7
|
+
[consumedBy] NVARCHAR(1000),
|
|
8
|
+
[consumedByDate] DATETIMEOFFSET;
|
|
9
|
+
|
|
10
|
+
COMMIT TRAN;
|
|
11
|
+
|
|
12
|
+
END TRY
|
|
13
|
+
BEGIN CATCH
|
|
14
|
+
|
|
15
|
+
IF @@TRANCOUNT > 0
|
|
16
|
+
BEGIN
|
|
17
|
+
ROLLBACK TRAN;
|
|
18
|
+
END;
|
|
19
|
+
THROW
|
|
20
|
+
|
|
21
|
+
END CATCH
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
BEGIN TRY
|
|
2
|
+
|
|
3
|
+
BEGIN TRAN;
|
|
4
|
+
|
|
5
|
+
-- CreateTable
|
|
6
|
+
CREATE TABLE [dbo].[CampaignRebricking] (
|
|
7
|
+
[id] INT NOT NULL IDENTITY(1,1),
|
|
8
|
+
[torpedoId] INT NOT NULL,
|
|
9
|
+
[startTime] DATETIMEOFFSET NOT NULL CONSTRAINT [CampaignRebricking_startTime_df] DEFAULT CURRENT_TIMESTAMP,
|
|
10
|
+
[endTime] DATETIMEOFFSET,
|
|
11
|
+
CONSTRAINT [CampaignRebricking_pkey] PRIMARY KEY CLUSTERED ([id])
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
-- CreateTable
|
|
15
|
+
CREATE TABLE [dbo].[CampaignSurvey] (
|
|
16
|
+
[id] INT NOT NULL IDENTITY(1,1),
|
|
17
|
+
[torpedoId] INT NOT NULL,
|
|
18
|
+
[startTime] DATETIMEOFFSET NOT NULL CONSTRAINT [CampaignSurvey_startTime_df] DEFAULT CURRENT_TIMESTAMP,
|
|
19
|
+
[endTime] DATETIMEOFFSET,
|
|
20
|
+
CONSTRAINT [CampaignSurvey_pkey] PRIMARY KEY CLUSTERED ([id])
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
-- CreateTable
|
|
24
|
+
CREATE TABLE [dbo].[TorpedoTrip] (
|
|
25
|
+
[id] INT NOT NULL IDENTITY(1,1),
|
|
26
|
+
[campaignRebrickingId] INT NOT NULL,
|
|
27
|
+
[campaignSurveyId] INT NOT NULL,
|
|
28
|
+
[hotMetalId] INT NOT NULL,
|
|
29
|
+
[torpedoId] INT NOT NULL,
|
|
30
|
+
[startTime] DATETIMEOFFSET NOT NULL CONSTRAINT [TorpedoTrip_startTime_df] DEFAULT CURRENT_TIMESTAMP,
|
|
31
|
+
[endTime] DATETIMEOFFSET,
|
|
32
|
+
CONSTRAINT [TorpedoTrip_pkey] PRIMARY KEY CLUSTERED ([id])
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
-- AddForeignKey
|
|
36
|
+
ALTER TABLE [dbo].[CampaignRebricking] ADD CONSTRAINT [CampaignRebricking_torpedoId_fkey] FOREIGN KEY ([torpedoId]) REFERENCES [dbo].[Torpedo]([torpedoId]) ON DELETE NO ACTION ON UPDATE CASCADE;
|
|
37
|
+
|
|
38
|
+
-- AddForeignKey
|
|
39
|
+
ALTER TABLE [dbo].[CampaignSurvey] ADD CONSTRAINT [CampaignSurvey_torpedoId_fkey] FOREIGN KEY ([torpedoId]) REFERENCES [dbo].[Torpedo]([torpedoId]) ON DELETE NO ACTION ON UPDATE CASCADE;
|
|
40
|
+
|
|
41
|
+
-- AddForeignKey
|
|
42
|
+
ALTER TABLE [dbo].[TorpedoTrip] ADD CONSTRAINT [TorpedoTrip_campaignRebrickingId_fkey] FOREIGN KEY ([campaignRebrickingId]) REFERENCES [dbo].[CampaignRebricking]([id]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
43
|
+
|
|
44
|
+
-- AddForeignKey
|
|
45
|
+
ALTER TABLE [dbo].[TorpedoTrip] ADD CONSTRAINT [TorpedoTrip_campaignSurveyId_fkey] FOREIGN KEY ([campaignSurveyId]) REFERENCES [dbo].[CampaignSurvey]([id]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
46
|
+
|
|
47
|
+
-- AddForeignKey
|
|
48
|
+
ALTER TABLE [dbo].[TorpedoTrip] ADD CONSTRAINT [TorpedoTrip_hotMetalId_fkey] FOREIGN KEY ([hotMetalId]) REFERENCES [dbo].[HotMetal]([id]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
49
|
+
|
|
50
|
+
-- AddForeignKey
|
|
51
|
+
ALTER TABLE [dbo].[TorpedoTrip] ADD CONSTRAINT [TorpedoTrip_torpedoId_fkey] FOREIGN KEY ([torpedoId]) REFERENCES [dbo].[Torpedo]([torpedoId]) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
|
52
|
+
|
|
53
|
+
COMMIT TRAN;
|
|
54
|
+
|
|
55
|
+
END TRY
|
|
56
|
+
BEGIN CATCH
|
|
57
|
+
|
|
58
|
+
IF @@TRANCOUNT > 0
|
|
59
|
+
BEGIN
|
|
60
|
+
ROLLBACK TRAN;
|
|
61
|
+
END;
|
|
62
|
+
THROW
|
|
63
|
+
|
|
64
|
+
END CATCH
|
package/prisma/schema.prisma
CHANGED
|
@@ -8,6 +8,43 @@ datasource db {
|
|
|
8
8
|
shadowDatabaseUrl = env("SHADOW_DATABASE_URL")
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/// **REBRICKING CAMPAIGN**
|
|
12
|
+
///
|
|
13
|
+
/// The entire lifespan of _Torpedo_ lining, from installation to removal.
|
|
14
|
+
///
|
|
15
|
+
/// This indicates the entire refractory lining (or just working lining) is
|
|
16
|
+
/// removed and the tonnes and trips on the lining are reset.
|
|
17
|
+
model CampaignRebricking {
|
|
18
|
+
id Int @id @default(autoincrement())
|
|
19
|
+
torpedo Torpedo @relation(fields: [torpedoId], references: [torpedoId], onDelete: NoAction, onUpdate: Cascade)
|
|
20
|
+
torpedoId Int
|
|
21
|
+
torpedoTrips TorpedoTrip[]
|
|
22
|
+
startTime DateTime @default(now()) @db.DateTimeOffset
|
|
23
|
+
endTime DateTime? @db.DateTimeOffset
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/// **SURVEY CAMPAIGN**
|
|
27
|
+
///
|
|
28
|
+
/// A period of continual operation between OOS inspections (~2 annually).
|
|
29
|
+
///
|
|
30
|
+
/// From OOS to OOS, used for _Torpedo Ladle_ refractory inspections, based on
|
|
31
|
+
/// number of tonnes carried, typically carried out once or twice a year (on
|
|
32
|
+
/// average). The total tonnes and _Trips_ on the lining are not reset.
|
|
33
|
+
model CampaignSurvey {
|
|
34
|
+
id Int @id @default(autoincrement())
|
|
35
|
+
torpedo Torpedo @relation(fields: [torpedoId], references: [torpedoId], onDelete: NoAction, onUpdate: Cascade)
|
|
36
|
+
torpedoId Int
|
|
37
|
+
torpedoTrips TorpedoTrip[]
|
|
38
|
+
startTime DateTime @default(now()) @db.DateTimeOffset
|
|
39
|
+
endTime DateTime? @db.DateTimeOffset
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/// **CAST**
|
|
43
|
+
///
|
|
44
|
+
/// A (parent) lot of molten iron produced by a **Blast Furnace**.
|
|
45
|
+
///
|
|
46
|
+
/// Contains properties that describe when the _Cast_ was produced and its
|
|
47
|
+
/// measured physical values.
|
|
11
48
|
model Cast {
|
|
12
49
|
id Int @id @default(autoincrement())
|
|
13
50
|
sequenceCastBlastFurnace Int @unique(sort: Desc)
|
|
@@ -53,6 +90,9 @@ model Cast {
|
|
|
53
90
|
hotMetalCollection HotMetal[]
|
|
54
91
|
}
|
|
55
92
|
|
|
93
|
+
/// **TORPEDO MOVEMENT EVENT**
|
|
94
|
+
///
|
|
95
|
+
/// Capture the details of a _Torpedo Movement_ triggered by a **HMC Operator**.
|
|
56
96
|
model EventTorpedoMovement {
|
|
57
97
|
id Int @id @default(autoincrement())
|
|
58
98
|
torpedoId Int
|
|
@@ -73,6 +113,9 @@ model EventTorpedoMovement {
|
|
|
73
113
|
updatedAt DateTime @updatedAt
|
|
74
114
|
}
|
|
75
115
|
|
|
116
|
+
/// **EVENT TRACKER**
|
|
117
|
+
///
|
|
118
|
+
/// Represents a generic system _Event_, which maps to its model instance.
|
|
76
119
|
model EventTracker {
|
|
77
120
|
id Int @id @default(autoincrement())
|
|
78
121
|
eventTime DateTime @db.DateTimeOffset
|
|
@@ -81,6 +124,9 @@ model EventTracker {
|
|
|
81
124
|
torpedoMovement EventTorpedoMovement?
|
|
82
125
|
}
|
|
83
126
|
|
|
127
|
+
/// **HOT METAL HANDLER COMMENT**
|
|
128
|
+
///
|
|
129
|
+
/// Stores comments for specific _Torpedoes_, logged by **Maintenance Users**.
|
|
84
130
|
model HMHComment {
|
|
85
131
|
id Int @id @default(autoincrement())
|
|
86
132
|
torpedo Torpedo @relation(fields: [torpedoId], references: [torpedoId], onDelete: NoAction, onUpdate: Cascade)
|
|
@@ -91,6 +137,12 @@ model HMHComment {
|
|
|
91
137
|
updatedAt DateTime? @updatedAt
|
|
92
138
|
}
|
|
93
139
|
|
|
140
|
+
/// **HOT METAL**
|
|
141
|
+
///
|
|
142
|
+
/// A (child) sub-lot, or batch, of molten iron produced by a **Blast Furnace**.
|
|
143
|
+
///
|
|
144
|
+
/// Containes properties that describe when the _Hot Metal_ was produced and its
|
|
145
|
+
/// measured physical values.
|
|
94
146
|
model HotMetal {
|
|
95
147
|
id Int @id @default(autoincrement())
|
|
96
148
|
mesId Int?
|
|
@@ -99,11 +151,15 @@ model HotMetal {
|
|
|
99
151
|
torpedo Torpedo @relation(fields: [torpedoId], references: [torpedoId], onDelete: NoAction, onUpdate: Cascade)
|
|
100
152
|
torpedoId Int
|
|
101
153
|
labResult HotMetalLabResult[]
|
|
154
|
+
torpedoTrip TorpedoTrip[]
|
|
102
155
|
dateTimeStartFill DateTime? @db.DateTimeOffset
|
|
103
156
|
dateTimeEndFill DateTime? @db.DateTimeOffset
|
|
104
157
|
identityBlastFurnace Int
|
|
105
158
|
noPosnTldlTapHole Int
|
|
106
159
|
temperatureHotMetal Int?
|
|
160
|
+
BF6WeighBridgeWeight Int?
|
|
161
|
+
consumedBy String?
|
|
162
|
+
consumedByDate DateTime? @db.DateTimeOffset
|
|
107
163
|
dpLevelTldlAuto Int?
|
|
108
164
|
dpLevelTldlManual Int?
|
|
109
165
|
capacity Int?
|
|
@@ -151,6 +207,13 @@ model HotMetal {
|
|
|
151
207
|
@@unique(name: "cast_torpedo_id", [castSequence, torpedoId])
|
|
152
208
|
}
|
|
153
209
|
|
|
210
|
+
/// **LAB RESULT**
|
|
211
|
+
///
|
|
212
|
+
/// _Hot Meta_l testing data from the **LIMS** laboratory integration.
|
|
213
|
+
///
|
|
214
|
+
/// Describes the time, type, and chemical analysis properties for a batch of
|
|
215
|
+
/// _Hot Metal_. Samples are typically taken when filling at the **Blast Furnace**,
|
|
216
|
+
/// and following **Desulphurisation** treatment(s).
|
|
154
217
|
model HotMetalLabResult {
|
|
155
218
|
id Int @id @default(autoincrement())
|
|
156
219
|
testSampleId String @unique(sort: Desc)
|
|
@@ -174,6 +237,12 @@ model HotMetalLabResult {
|
|
|
174
237
|
updatedAt DateTime @updatedAt
|
|
175
238
|
}
|
|
176
239
|
|
|
240
|
+
/// **LOCATION**
|
|
241
|
+
///
|
|
242
|
+
/// An operational location where _Torpedoes_ may be placed during use.
|
|
243
|
+
///
|
|
244
|
+
/// Within the context of HMM, a Location defines the physical place where a
|
|
245
|
+
/// Torpedo is located, which is more precise than its Station.
|
|
177
246
|
model Location {
|
|
178
247
|
id Int @id @default(autoincrement())
|
|
179
248
|
name String
|
|
@@ -186,6 +255,12 @@ model Location {
|
|
|
186
255
|
torpedoLocations TorpedoLocation[]
|
|
187
256
|
}
|
|
188
257
|
|
|
258
|
+
/// **STATION**
|
|
259
|
+
///
|
|
260
|
+
/// A logical location where different _Torpedo_ operations may occur.
|
|
261
|
+
///
|
|
262
|
+
/// _Stations_ are logical groupings of physical locations that are linked based
|
|
263
|
+
/// on their (general) operational purpose.
|
|
189
264
|
model Station {
|
|
190
265
|
id Int @id @default(autoincrement())
|
|
191
266
|
name String
|
|
@@ -198,6 +273,14 @@ model Station {
|
|
|
198
273
|
eventsTorpedoMovementDestination EventTorpedoMovement[] @relation(name: "destinationStation-movement")
|
|
199
274
|
}
|
|
200
275
|
|
|
276
|
+
/// **TORPEDO LADLE**
|
|
277
|
+
///
|
|
278
|
+
/// Physical rail-based equipment used to carry _Hot Metal_ between _Locations_.
|
|
279
|
+
///
|
|
280
|
+
/// _Torpedoes_ carry out work and undergo maintenance in their normal operation.
|
|
281
|
+
/// Their job is to get _Hot Metal_ from the **Blast Furnace(s)** to the **BOS**. The
|
|
282
|
+
/// system cares about how efficiently that's happening, and how much total
|
|
283
|
+
/// work they do.
|
|
201
284
|
model Torpedo {
|
|
202
285
|
id Int @id @default(autoincrement())
|
|
203
286
|
torpedoId Int @unique(sort: Desc)
|
|
@@ -224,12 +307,18 @@ model Torpedo {
|
|
|
224
307
|
torpedoComments TorpedoComment[]
|
|
225
308
|
hmhComments HMHComment[]
|
|
226
309
|
eventsTorpedoMovement EventTorpedoMovement[]
|
|
310
|
+
campaignsRebricking CampaignRebricking[]
|
|
311
|
+
campaignsSurvey CampaignSurvey[]
|
|
312
|
+
torpedoTrips TorpedoTrip[]
|
|
227
313
|
torpedoState TorpedoState? @relation(fields: [torpedoStateId], references: [id])
|
|
228
314
|
torpedoStateId Int?
|
|
229
315
|
createdAt DateTime @default(now())
|
|
230
316
|
updatedAt DateTime @updatedAt
|
|
231
317
|
}
|
|
232
318
|
|
|
319
|
+
/// **TORPEDO COMMENT**
|
|
320
|
+
///
|
|
321
|
+
/// Stores comments for specific _Torpedoes_, logged by **HMC Operators**.
|
|
233
322
|
model TorpedoComment {
|
|
234
323
|
id Int @id @default(autoincrement())
|
|
235
324
|
torpedo Torpedo @relation(fields: [torpedoId], references: [torpedoId], onDelete: NoAction, onUpdate: Cascade)
|
|
@@ -240,6 +329,12 @@ model TorpedoComment {
|
|
|
240
329
|
updatedAt DateTime? @updatedAt
|
|
241
330
|
}
|
|
242
331
|
|
|
332
|
+
/// **TORPEDO LOCATION**
|
|
333
|
+
///
|
|
334
|
+
/// Defines the current operational _Location_ for each _Torpedo_.
|
|
335
|
+
///
|
|
336
|
+
/// The `position` property is only significant for _Stations_, representing
|
|
337
|
+
/// their physical sequence on the actual rail siding that they're occupying.
|
|
243
338
|
model TorpedoLocation {
|
|
244
339
|
stationId Int
|
|
245
340
|
station Station @relation(fields: [stationId], references: [id], onDelete: NoAction, onUpdate: Cascade)
|
|
@@ -254,6 +349,9 @@ model TorpedoLocation {
|
|
|
254
349
|
@@id([stationId, position])
|
|
255
350
|
}
|
|
256
351
|
|
|
352
|
+
/// **TORPEDO STATE**
|
|
353
|
+
///
|
|
354
|
+
/// Describes a valid operational _State_ that a _Torpedo_ can be assigned.
|
|
257
355
|
model TorpedoState {
|
|
258
356
|
id Int @id @default(autoincrement())
|
|
259
357
|
name String @unique
|
|
@@ -261,3 +359,24 @@ model TorpedoState {
|
|
|
261
359
|
description String
|
|
262
360
|
torpedoes Torpedo[]
|
|
263
361
|
}
|
|
362
|
+
|
|
363
|
+
/// **TORPEDO TRIP (ON LINING)**
|
|
364
|
+
///
|
|
365
|
+
/// The period between finishing a fill, and consuming that _Hot Metal_.
|
|
366
|
+
///
|
|
367
|
+
/// Defined by:
|
|
368
|
+
/// - Start: **Blast Furnace** finish filling ladle
|
|
369
|
+
/// - End: _Torpedo Ladle_ fully emptied at **BOS Weighbridge** or **21 Dump**
|
|
370
|
+
model TorpedoTrip {
|
|
371
|
+
id Int @id @default(autoincrement())
|
|
372
|
+
campaignRebricking CampaignRebricking @relation(fields: [campaignRebrickingId], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
|
373
|
+
campaignRebrickingId Int
|
|
374
|
+
campaignSurvey CampaignSurvey @relation(fields: [campaignSurveyId], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
|
375
|
+
campaignSurveyId Int
|
|
376
|
+
hotMetal HotMetal @relation(fields: [hotMetalId], references: [id], onDelete: NoAction, onUpdate: NoAction)
|
|
377
|
+
hotMetalId Int
|
|
378
|
+
torpedo Torpedo @relation(fields: [torpedoId], references: [torpedoId], onDelete: NoAction, onUpdate: NoAction)
|
|
379
|
+
torpedoId Int
|
|
380
|
+
startTime DateTime @default(now()) @db.DateTimeOffset
|
|
381
|
+
endTime DateTime? @db.DateTimeOffset
|
|
382
|
+
}
|