diff --git a/AsbCloudDb/Model/AsbCloudDbContext.cs b/AsbCloudDb/Model/AsbCloudDbContext.cs index a43f55c1..eeaa4e3c 100644 --- a/AsbCloudDb/Model/AsbCloudDbContext.cs +++ b/AsbCloudDb/Model/AsbCloudDbContext.cs @@ -1,4 +1,5 @@ -using AsbCloudDb.Model.Subsystems; +using AsbCloudDb.Model.GTR; +using AsbCloudDb.Model.Subsystems; using Microsoft.EntityFrameworkCore; using System.Threading; using System.Threading.Tasks; @@ -55,6 +56,11 @@ namespace AsbCloudDb.Model public virtual DbSet TelemetryWirelineRunOut => Set(); + // GTR WITS + public DbSet WitsFloat => Set(); + public DbSet WitsInt => Set(); + public DbSet WitsStr => Set(); + // WITS public DbSet Record1 => Set(); public DbSet Record7 => Set(); @@ -334,6 +340,14 @@ namespace AsbCloudDb.Model .HasJsonConversion(); }); + modelBuilder.Entity(entity => + { + entity.HasKey( + nameof(ITelemetryData.IdTelemetry), + nameof(WitsBase.IdRecord), + nameof(WitsBase.IdItem)); + }); + modelBuilder.Entity(entity => { diff --git a/AsbCloudDb/Model/GTR/WitsBase.cs b/AsbCloudDb/Model/GTR/WitsBase.cs new file mode 100644 index 00000000..518867ca --- /dev/null +++ b/AsbCloudDb/Model/GTR/WitsBase.cs @@ -0,0 +1,25 @@ +using Microsoft.EntityFrameworkCore; +using System; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudDb.Model.GTR +{ + [Table("t_wits_base"), Comment("таблица данных ГТИ")] + public abstract class WitsBase : ITelemetryData + { + [Column("id_telemetry")] + public int IdTelemetry { get; set; } + + [Column("id_record")] + public int IdRecord { get; set; } + + [Column("id_item")] + public int IdItem { get; set; } + + [Column("date", TypeName = "timestamp with time zone")] + public DateTimeOffset DateTime { get; set; } + + [ForeignKey(nameof(IdTelemetry))] + public virtual Telemetry? Telemetry { get; set; } + } +} diff --git a/AsbCloudDb/Model/GTR/WitsFloat.cs b/AsbCloudDb/Model/GTR/WitsFloat.cs new file mode 100644 index 00000000..ab5421e8 --- /dev/null +++ b/AsbCloudDb/Model/GTR/WitsFloat.cs @@ -0,0 +1,12 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudDb.Model.GTR +{ + [Table("t_wits_int"), Comment("таблица данных ГТИ с типом значения float")] + public class WitsFloat : WitsBase + { + [Column("value")] + public float? Value { get; set; } + } +} diff --git a/AsbCloudDb/Model/GTR/WitsInt.cs b/AsbCloudDb/Model/GTR/WitsInt.cs new file mode 100644 index 00000000..0b35e896 --- /dev/null +++ b/AsbCloudDb/Model/GTR/WitsInt.cs @@ -0,0 +1,17 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudDb.Model.GTR +{ + [Table("t_wits_int"), Comment("таблица данных ГТИ с типом значения int16 int32")] + public class WitsInt : WitsBase + { + [Column("Value", TypeName = "bigint")] + public int? Value { get; set; } + } + + + + + +} diff --git a/AsbCloudDb/Model/GTR/WitsStr.cs b/AsbCloudDb/Model/GTR/WitsStr.cs new file mode 100644 index 00000000..54fca480 --- /dev/null +++ b/AsbCloudDb/Model/GTR/WitsStr.cs @@ -0,0 +1,14 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace AsbCloudDb.Model.GTR +{ + [Table("t_wits_string"), Comment("таблица данных ГТИ с типом значения string")] + public class WitsStr: WitsBase + { + [Column("value")] + [StringLength(64)] + public string? Value { get; set; } + } +} diff --git a/AsbCloudDb/Model/IAsbCloudDbContext.cs b/AsbCloudDb/Model/IAsbCloudDbContext.cs index 446a7656..980ef455 100644 --- a/AsbCloudDb/Model/IAsbCloudDbContext.cs +++ b/AsbCloudDb/Model/IAsbCloudDbContext.cs @@ -1,4 +1,5 @@ -using AsbCloudDb.Model.Subsystems; +using AsbCloudDb.Model.GTR; +using AsbCloudDb.Model.Subsystems; using AsbCloudDb.Model.WITS; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; @@ -47,6 +48,9 @@ namespace AsbCloudDb.Model DbSet WellOperationCategories { get; } DbSet WellSectionTypes { get; } DbSet WellTypes { get; } + DbSet WitsFloat { get; } + DbSet WitsInt { get; } + DbSet WitsStr { get; } DbSet Drillers { get; } DbSet Schedule { get; } DbSet OperationValues { get; }