Răsfoiți Sursa

feat(db): add siteinfo leak summary and gow tables

Adds new database models and migrations for tracking leak summaries, leak components, and gas/oil well (GOW) data.

Includes:
- SiteInfoLeakSummary for tracking valve and connector leaks
- SiteInfoLeakComponents for leak component details
- GowFacId, GowData, and GowCorpRef for gas and oil well data management
vtugulan 4 zile în urmă
părinte
comite
bc786d8744

+ 12 - 0
prisma/migrations/20260201203533_add_siteinfo_leaksummary/migration.sql

@@ -0,0 +1,12 @@
+-- CreateTable
+CREATE TABLE "siteinfo_leaksummary" (
+    "id" SERIAL NOT NULL,
+    "valve_leaks" VARCHAR(1000),
+    "valve_tagged_leaks" VARCHAR(1000),
+    "connector_leaks" VARCHAR(1000),
+    "connector_tagged_leaks" VARCHAR(1000),
+    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    "updatedAt" TIMESTAMP(3) NOT NULL,
+
+    CONSTRAINT "siteinfo_leaksummary_pkey" PRIMARY KEY ("id")
+);

+ 81 - 0
prisma/migrations/20260201204034_add_gow_tables/migration.sql

@@ -0,0 +1,81 @@
+-- CreateTable
+CREATE TABLE "siteinfo_leakcomponents" (
+    "id" SERIAL NOT NULL,
+    "component_id" VARCHAR(1000),
+    "component_type_location" VARCHAR(1000),
+    "monitoring_method" VARCHAR(1000),
+    "opgal_video_id" VARCHAR(1000),
+    "successful_repair_date" VARCHAR(1000),
+    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    "updatedAt" TIMESTAMP(3) NOT NULL,
+
+    CONSTRAINT "siteinfo_leakcomponents_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateTable
+CREATE TABLE "gow_fac_id" (
+    "id" SERIAL NOT NULL,
+    "import_id" INTEGER NOT NULL,
+    "corp_id" VARCHAR(1000),
+    "odeq_fac_id" VARCHAR(1000),
+    "odeq_facility_name" VARCHAR(1000),
+    "corp_id_2" VARCHAR(1000),
+    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    "updatedAt" TIMESTAMP(3) NOT NULL,
+
+    CONSTRAINT "gow_fac_id_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateTable
+CREATE TABLE "gow_data" (
+    "id" SERIAL NOT NULL,
+    "import_id" INTEGER NOT NULL,
+    "well_name" VARCHAR(1000),
+    "month" VARCHAR(1000),
+    "corpId" VARCHAR(1000),
+    "completion_type" VARCHAR(1000),
+    "state" VARCHAR(1000),
+    "days_on" VARCHAR(1000),
+    "gas_production" VARCHAR(1000),
+    "gas_sales" VARCHAR(1000),
+    "oil_production" VARCHAR(1000),
+    "oil_sales" VARCHAR(1000),
+    "water_production" VARCHAR(1000),
+    "operator" VARCHAR(1000),
+    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    "updatedAt" TIMESTAMP(3) NOT NULL,
+
+    CONSTRAINT "gow_data_pkey" PRIMARY KEY ("id")
+);
+
+-- CreateTable
+CREATE TABLE "gow_corp_ref" (
+    "id" SERIAL NOT NULL,
+    "import_id" INTEGER NOT NULL,
+    "well_name" VARCHAR(1000),
+    "api_no" VARCHAR(1000),
+    "corporate_id" VARCHAR(1000),
+    "current_well_status" VARCHAR(1000),
+    "county_parish" VARCHAR(1000),
+    "state" VARCHAR(1000),
+    "area" VARCHAR(1000),
+    "completion_date" VARCHAR(1000),
+    "pop_first_production" VARCHAR(1000),
+    "operator" VARCHAR(1000),
+    "abandon_date" VARCHAR(1000),
+    "battery" VARCHAR(1000),
+    "common_pad_name" VARCHAR(1000),
+    "id_well" VARCHAR(1000),
+    "lease_id" VARCHAR(1000),
+    "latitude" VARCHAR(1000),
+    "longitude" VARCHAR(1000),
+    "pad_code" VARCHAR(1000),
+    "pad_name" VARCHAR(1000),
+    "permit_number" VARCHAR(1000),
+    "well_sub_status" VARCHAR(1000),
+    "shut_in_date" VARCHAR(1000),
+    "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    "updatedAt" TIMESTAMP(3) NOT NULL,
+
+    CONSTRAINT "gow_corp_ref_pkey" PRIMARY KEY ("id")
+);

+ 90 - 0
prisma/schema.prisma

@@ -147,3 +147,93 @@ model SiteInformation {
 
   @@map("siteinfo_siteinformation")
 }
+
+model SiteInfoLeakSummary {
+  id              Int      @id @default(autoincrement())
+  valveLeaks      String?  @map("valve_leaks") @db.VarChar(1000)
+  valveTaggedLeaks String? @map("valve_tagged_leaks") @db.VarChar(1000)
+  connectorLeaks  String?  @map("connector_leaks") @db.VarChar(1000)
+  connectorTaggedLeaks String? @map("connector_tagged_leaks") @db.VarChar(1000)
+  createdAt       DateTime @default(now())
+  updatedAt       DateTime @updatedAt
+
+  @@map("siteinfo_leaksummary")
+}
+
+model SiteInfoLeakComponents {
+  id                      Int      @id @default(autoincrement())
+  componentId             String?  @map("component_id") @db.VarChar(1000)
+  componentTypeLocation   String?  @map("component_type_location") @db.VarChar(1000)
+  monitoringMethod        String?  @map("monitoring_method") @db.VarChar(1000)
+  opgalVideoId            String?  @map("opgal_video_id") @db.VarChar(1000)
+  successfulRepairDate    String?  @map("successful_repair_date") @db.VarChar(1000)
+  createdAt               DateTime @default(now())
+  updatedAt               DateTime @updatedAt
+
+  @@map("siteinfo_leakcomponents")
+}
+
+model GowFacId {
+  id            Int      @id @default(autoincrement())
+  importId      Int      @map("import_id")
+  corpId        String?  @map("corp_id") @db.VarChar(1000)
+  odeqFacId     String?  @map("odeq_fac_id") @db.VarChar(1000)
+  odeqFacilityName String? @map("odeq_facility_name") @db.VarChar(1000)
+  corpId2       String?  @map("corp_id_2") @db.VarChar(1000)
+  createdAt     DateTime @default(now())
+  updatedAt     DateTime @updatedAt
+
+  @@map("gow_fac_id")
+}
+
+model GowData {
+  id               Int      @id @default(autoincrement())
+  importId         Int      @map("import_id")
+  wellName         String?  @map("well_name") @db.VarChar(1000)
+  month            String?  @db.VarChar(1000)
+  corpId           String?  @db.VarChar(1000)
+  completionType   String?  @map("completion_type") @db.VarChar(1000)
+  state            String?  @db.VarChar(1000)
+  daysOn           String?  @map("days_on") @db.VarChar(1000)
+  gasProduction    String?  @map("gas_production") @db.VarChar(1000)
+  gasSales         String?  @map("gas_sales") @db.VarChar(1000)
+  oilProduction    String?  @map("oil_production") @db.VarChar(1000)
+  oilSales         String?  @map("oil_sales") @db.VarChar(1000)
+  waterProduction  String?  @map("water_production") @db.VarChar(1000)
+  operator         String?  @db.VarChar(1000)
+  createdAt        DateTime @default(now())
+  updatedAt        DateTime @updatedAt
+
+  @@map("gow_data")
+}
+
+model GowCorpRef {
+  id                   Int      @id @default(autoincrement())
+  importId            Int      @map("import_id")
+  wellName            String?  @map("well_name") @db.VarChar(1000)
+  apiNo               String?  @map("api_no") @db.VarChar(1000)
+  corporateId         String?  @map("corporate_id") @db.VarChar(1000)
+  currentWellStatus   String?  @map("current_well_status") @db.VarChar(1000)
+  countyParish        String?  @map("county_parish") @db.VarChar(1000)
+  state               String?  @db.VarChar(1000)
+  area                String?  @db.VarChar(1000)
+  completionDate      String?  @map("completion_date") @db.VarChar(1000)
+  popFirstProduction  String?  @map("pop_first_production") @db.VarChar(1000)
+  operator            String?  @db.VarChar(1000)
+  abandonDate         String?  @map("abandon_date") @db.VarChar(1000)
+  battery             String?  @db.VarChar(1000)
+  commonPadName       String?  @map("common_pad_name") @db.VarChar(1000)
+  idWell              String?  @map("id_well") @db.VarChar(1000)
+  leaseId             String?  @map("lease_id") @db.VarChar(1000)
+  latitude            String?  @db.VarChar(1000)
+  longitude           String?  @db.VarChar(1000)
+  padCode             String?  @map("pad_code") @db.VarChar(1000)
+  padName             String?  @map("pad_name") @db.VarChar(1000)
+  permitNumber        String?  @map("permit_number") @db.VarChar(1000)
+  wellSubStatus       String?  @map("well_sub_status") @db.VarChar(1000)
+  shutInDate          String?  @map("shut_in_date") @db.VarChar(1000)
+  createdAt           DateTime @default(now())
+  updatedAt           DateTime @updatedAt
+
+  @@map("gow_corp_ref")
+}