fixing merge conflict

This commit is contained in:
2024-11-20 13:34:17 -05:00
24 changed files with 2372 additions and 20 deletions

7
.env Normal file
View File

@@ -0,0 +1,7 @@
# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema
# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings
DATABASE_URL="postgresql://postgres:cul8rman@portainer.dev.gofwd.group:5433/ballistic?schema=public"

7
.env .development Normal file
View File

@@ -0,0 +1,7 @@
# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema
# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings
DATABASE_URL="postgresql://postgres:cul8rman@192.168.11.210:5433/ballistic?schema=public"

7
.env.production Normal file
View File

@@ -0,0 +1,7 @@
# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema
# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings
DATABASE_URL="postgresql://postgres:cul8rman@192.168.11.210:5433/ballistic?schema=public"

2
.gitignore vendored
View File

@@ -30,7 +30,7 @@ yarn-debug.log*
yarn-error.log*
# env files (can opt-in for committing if needed)
.env*
# .env*
# vercel
.vercel

10
drizzle.config.ts Normal file
View File

@@ -0,0 +1,10 @@
import 'dotenv/config';
import { defineConfig } from 'drizzle-kit';
export default defineConfig({
out: './src/drizzle',
schema: './src/db/schema/',
dialect: 'postgresql',
dbCredentials: {
url: process.env.DATABASE_URL!,
},
});

1316
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "balistics-builder",
"version": "0.1.0",
"private": true,
"private": "true",
"scripts": {
"dev": "next dev",
"build": "next build",
@@ -18,21 +18,26 @@
"@mui/system": "^6.1.7",
"@mui/x-data-grid": "^7.22.2",
"@prisma/client": "^5.22.0",
"dotenv": "^16.4.5",
"drizzle-orm": "^0.36.3",
"fontsource-roboto": "^4.0.0",
"next": "15.0.3",
"pg": "^8.13.1",
"react": "18.2.0",
"react-dom": "18.2.0"
},
"devDependencies": {
"@types/node": "^20.17.6",
"@types/pg": "^8.11.10",
"@types/react": "^18",
"@types/react-dom": "^18",
"autoprefixer": "^10.4.20",
"drizzle-kit": "^0.28.1",
"eslint": "^8",
"eslint-config-next": "15.0.3",
"postcss": "^8",
"prisma": "^5.22.0",
"tailwindcss": "^3.4.1",
"tailwindcss": "^3.4.15",
"tsx": "^4.19.2",
"typescript": "^5.6.3"
}

13
src/db/index.ts Normal file
View File

@@ -0,0 +1,13 @@
import 'dotenv/config';
import { drizzle } from 'drizzle-orm/node-postgres';
import { Pool } from 'pg';
import { sql } from 'drizzle-orm';
// db/index.ts
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
});
export const db = drizzle(pool);

23
src/db/queries/index.ts Normal file
View File

@@ -0,0 +1,23 @@
// db/queries.ts
import { Account } from '../schema/Account'
import { db } from '../index';
// Fetch all account
export async function getAllAccounts() {
return await db.select().from(Account);
}
// Add a new account
export async function addAcount(first_name: string, last_name : string, username : string, password_hash: string ) {
return await db.insert(Account).values({ first_name, last_name, username, password_hash }).returning();
}
// Update a account
export async function updateAcount(id: number, first_name: string, last_name : string, username : string, password_hash: string ) {
return await db.update(Account).set({ first_name, last_name, username, password_hash }).where(Account.id.equals(id));
}
// Delete a account
export async function deleteAccount(id: number) {
return await db.delete(Account).where(Account.id.equals(id));
}

14
src/db/schema/Account.ts Normal file
View File

@@ -0,0 +1,14 @@
import { pgTable, integer, varchar } from "drizzle-orm/pg-core";
import { sql } from "drizzle-orm";
import { timestamps } from "./helpers/columns.helpers";
export const Account = pgTable("bal_accounts", {
id: integer().primaryKey().generatedAlwaysAsIdentity({ name: "accounts_id_seq", startWith: 1, increment: 1, minValue: 1, maxValue: 2147483647, cache: 1 }),
first_name: varchar({ length: 40 }),
last_name: varchar({ length: 40 }),
email: varchar({length: 100}),
username: varchar({length:50}).notNull().unique(),
password_hash: varchar({length:255}).notNull().unique(),
...timestamps
})

11
src/db/schema/Build.ts Normal file
View File

@@ -0,0 +1,11 @@
import { pgTable, integer, varchar, text } from "drizzle-orm/pg-core";
import { sql } from "drizzle-orm";
import { timestamps } from "./helpers/columns.helpers";
export const Build = pgTable("builds", {
id: integer().primaryKey().generatedAlwaysAsIdentity({ name: "build_id_seq", startWith: 1, increment: 1, minValue: 1, maxValue: 2147483647, cache: 1 }),
account_id: integer().notNull(),
name: varchar({length:255}).notNull(),
description: text(),
...timestamps
})

View File

@@ -0,0 +1,10 @@
import { pgTable, integer, varchar, text } from "drizzle-orm/pg-core";
import { sql } from "drizzle-orm";
import { timestamps } from "./helpers/columns.helpers";
export const BuildComponent = pgTable("builds_components", {
id: integer().primaryKey().generatedAlwaysAsIdentity({ name: "build_components_id_seq", startWith: 1, increment: 1, minValue: 1, maxValue: 2147483647, cache: 1 }),
build_id: integer().notNull(),
product_id: integer().notNull(),
...timestamps
})

10
src/db/schema/Category.ts Normal file
View File

@@ -0,0 +1,10 @@
import { pgTable, integer, varchar } from "drizzle-orm/pg-core";
import { sql } from "drizzle-orm";
import { timestamps } from "./helpers/columns.helpers";
export const Category = pgTable("categories", {
id: integer().primaryKey().generatedAlwaysAsIdentity({ name: "categories_id_seq", startWith: 1, increment: 1, minValue: 1, maxValue: 2147483647, cache: 1 }),
name: varchar({length: 100}).notNull(),
parent_category_id: integer(),
...timestamps
})

View File

@@ -0,0 +1,88 @@
import { pgTable, integer, varchar, text, doublePrecision, timestamp } from "drizzle-orm/pg-core"
import { sql } from "drizzle-orm"
import { timestamps } from "./helpers/columns.helpers";
export const LipseyCatalog = pgTable("lipseycatalog", {
id: integer().primaryKey().generatedAlwaysAsIdentity({ name: "lipseycatalog_id_seq", startWith: 1, increment: 1, minValue: 1, maxValue: 2147483647, cache: 1 }),
itemno: varchar({ length: 20 }).notNull(),
description1: text(),
description2: text(),
upc: varchar({ length: 20 }),
manufacturermodelno: varchar({ length: 30 }),
msrp: doublePrecision(),
model: text(),
calibergauge: text(),
manufacturer: text(),
type: text(),
action: text(),
barrellength: text(),
capacity: text(),
finish: text(),
overalllength: text(),
receiver: text(),
safety: text(),
sights: text(),
stockframegrips: text(),
magazine: text(),
weight: text(),
imagename: text(),
chamber: text(),
drilledandtapped: text(),
rateoftwist: text(),
itemtype: text(),
additionalfeature1: text(),
additionalfeature2: text(),
additionalfeature3: text(),
shippingweight: text(),
boundbookmanufacturer: text(),
boundbookmodel: text(),
boundbooktype: text(),
nfathreadpattern: text(),
nfaattachmentmethod: text(),
nfabaffletype: text(),
silencercanbedisassembled: text(),
silencerconstructionmaterial: text(),
nfadbreduction: text(),
silenceroutsidediameter: text(),
nfaform3Caliber: text(),
opticmagnification: text(),
maintubesize: text(),
adjustableobjective: text(),
objectivesize: text(),
opticadjustments: text(),
illuminatedreticle: text(),
reticle: text(),
exclusive: text(),
quantity: varchar({ length: 10 }).default(sql`NULL`),
allocated: text(),
onsale: text(),
price: doublePrecision(),
currentprice: doublePrecision(),
retailmap: doublePrecision(),
fflrequired: text(),
sotrequired: text(),
exclusivetype: text(),
scopecoverincluded: text(),
special: text(),
sightstype: text(),
case: text(),
choke: text(),
dbreduction: text(),
family: text(),
finishtype: text(),
frame: text(),
griptype: varchar({ length: 30 }),
handgunslidematerial: text(),
countryoforigin: varchar({ length: 4 }),
itemlength: text(),
itemwidth: text(),
itemheight: text(),
packagelength: doublePrecision(),
packagewidth: doublePrecision(),
packageheight: doublePrecision(),
itemgroup: varchar({ length: 40 }),
...timestamps
});

14
src/db/schema/Product.ts Normal file
View File

@@ -0,0 +1,14 @@
import { pgTable, integer, varchar, text, decimal } from "drizzle-orm/pg-core";
import { sql } from "drizzle-orm";
import { timestamps } from "./helpers/columns.helpers";
export const Product = pgTable("products", {
id: integer().primaryKey().generatedAlwaysAsIdentity({ name: "products_id_seq", startWith: 1, increment: 1, minValue: 1, maxValue: 2147483647, cache: 1 }),
name: varchar({length: 255 }).notNull(),
description: text().notNull(),
price: decimal().notNull(),
reseller_id: integer().notNull(),
category_id: integer().notNull(),
stock_qty: integer().default(0),
...timestamps
})

View File

@@ -0,0 +1,11 @@
import { pgTable, integer, varchar, timestamp } from "drizzle-orm/pg-core";
import { sql } from "drizzle-orm";
import { timestamps } from "./helpers/columns.helpers";
export const Product_feed = pgTable("product_feeds", {
id: integer().primaryKey().generatedAlwaysAsIdentity({ name: "productfeeds_id_seq", startWith: 1, increment: 1, minValue: 1, maxValue: 2147483647, cache: 1 }),
reseller_id: integer().notNull(),
feed_url: varchar({ length:255 }).notNull(),
last_update: timestamp(),
...timestamps
})

11
src/db/schema/Reseller.ts Normal file
View File

@@ -0,0 +1,11 @@
import { pgTable, integer, varchar } from "drizzle-orm/pg-core";
import { sql } from "drizzle-orm";
import { timestamps } from "./helpers/columns.helpers";
export const Reseller = pgTable("bal_resellers", {
id: integer().primaryKey().generatedAlwaysAsIdentity({ name: "resellers_id_seq", startWith: 1, increment: 1, minValue: 1, maxValue: 2147483647, cache: 1 }),
name: varchar({ length: 100 }).notNull(),
website_url: varchar({ length: 255 }),
contact_email: varchar({length: 100}),
...timestamps
})

View File

@@ -0,0 +1,9 @@
import { pgTable, integer, varchar } from "drizzle-orm/pg-core";
import { sql } from "drizzle-orm";
import { timestamps } from "./helpers/columns.helpers";
export const accounts = pgTable("base_table", {
id: integer().primaryKey().generatedAlwaysAsIdentity({ name: "base_id_seq", startWith: 1, increment: 1, minValue: 1, maxValue: 2147483647, cache: 1 }),
...timestamps
})

View File

@@ -0,0 +1,14 @@
import { timestamp } from "drizzle-orm/pg-core";
// columns.helpers.ts
export const timestamps = {
updated_at: timestamp().defaultNow().notNull(),
created_at: timestamp().defaultNow().notNull(),
deleted_at: timestamp(),
}
export const timestampsAllowNulls = {
updated_at: timestamp().defaultNow(),
created_at: timestamp().defaultNow(),
deleted_at: timestamp(),
}

View File

@@ -0,0 +1,3 @@
import { relations } from "drizzle-orm/relations";
import { } from "./LipseyCatalog";

View File

@@ -0,0 +1,136 @@
-- Current sql file was generated after introspecting the database
-- If you want to run this migration please uncomment this code before executing migrations
/*
CREATE TABLE IF NOT EXISTS "_prisma_migrations" (
"id" varchar(36) PRIMARY KEY NOT NULL,
"checksum" varchar(64) NOT NULL,
"finished_at" timestamp with time zone,
"migration_name" varchar(255) NOT NULL,
"logs" text,
"rolled_back_at" timestamp with time zone,
"started_at" timestamp with time zone DEFAULT now() NOT NULL,
"applied_steps_count" integer DEFAULT 0 NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "User" (
"id" serial PRIMARY KEY NOT NULL,
"email" text NOT NULL,
"name" text
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "Post" (
"id" serial PRIMARY KEY NOT NULL,
"createdAt" timestamp(3) DEFAULT CURRENT_TIMESTAMP NOT NULL,
"updatedAt" timestamp(3) NOT NULL,
"title" text,
"content" text,
"published" boolean DEFAULT false NOT NULL,
"authorId" integer NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "Profile" (
"id" serial PRIMARY KEY NOT NULL,
"bio" text,
"userId" integer NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "lipseycatalog" (
"id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "lipseycatalog_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
"itemno" varchar(20) NOT NULL,
"description1" text,
"description2" text,
"upc" varchar(20),
"manufacturermodelno" varchar(30),
"msrp" double precision,
"model" text,
"calibergauge" text,
"manufacturer" text,
"type" text,
"action" text,
"barrellength" text,
"capacity" text,
"finish" text,
"overalllength" text,
"receiver" text,
"safety" text,
"sights" text,
"stockframegrips" text,
"magazine" text,
"weight" text,
"imagename" text,
"chamber" text,
"drilledandtapped" text,
"rateoftwist" text,
"itemtype" text,
"additionalfeature1" text,
"additionalfeature2" text,
"additionalfeature3" text,
"shippingweight" text,
"boundbookmanufacturer" text,
"boundbookmodel" text,
"boundbooktype" text,
"nfathreadpattern" text,
"nfaattachmentmethod" text,
"nfabaffletype" text,
"silencercanbedisassembled" text,
"silencerconstructionmaterial" text,
"nfadbreduction" text,
"silenceroutsidediameter" text,
"nfaform3caliber" text,
"opticmagnification" text,
"maintubesize" text,
"adjustableobjective" text,
"objectivesize" text,
"opticadjustments" text,
"illuminatedreticle" text,
"reticle" text,
"exclusive" text,
"quantity" varchar(10) DEFAULT NULL,
"allocated" text,
"onsale" text,
"price" double precision,
"currentprice" double precision,
"retailmap" double precision,
"fflrequired" text,
"sotrequired" text,
"exclusivetype" text,
"scopecoverincluded" text,
"special" text,
"sightstype" text,
"case" text,
"choke" text,
"dbreduction" text,
"family" text,
"finishtype" text,
"frame" text,
"griptype" varchar(30),
"handgunslidematerial" text,
"countryoforigin" varchar(4),
"itemlength" text,
"itemwidth" text,
"itemheight" text,
"packagelength" double precision,
"packagewidth" double precision,
"packageheight" double precision,
"itemgroup" varchar(40),
"createdon" timestamp
);
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "Post" ADD CONSTRAINT "Post_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "public"."User"("id") ON DELETE restrict ON UPDATE cascade;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "Profile" ADD CONSTRAINT "Profile_userId_fkey" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE restrict ON UPDATE cascade;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "User_email_key" ON "User" USING btree ("email" text_ops);--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "User_id_idx" ON "User" USING btree ("id" int4_ops);--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "Post_id_idx" ON "Post" USING btree ("id" int4_ops);--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "Profile_id_idx" ON "Profile" USING btree ("id" int4_ops);--> statement-breakpoint
CREATE UNIQUE INDEX IF NOT EXISTS "Profile_userId_key" ON "Profile" USING btree ("userId" int4_ops);
*/

View File

@@ -0,0 +1,87 @@
CREATE TABLE IF NOT EXISTS "bal_accounts" (
"id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "accountsid_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
"first_name" varchar(40),
"createdon" timestamp
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "lipseycatalog" (
"id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "lipseycatalog_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1),
"itemno" varchar(20) NOT NULL,
"description1" text,
"description2" text,
"upc" varchar(20),
"manufacturermodelno" varchar(30),
"msrp" double precision,
"model" text,
"calibergauge" text,
"manufacturer" text,
"type" text,
"action" text,
"barrellength" text,
"capacity" text,
"finish" text,
"overalllength" text,
"receiver" text,
"safety" text,
"sights" text,
"stockframegrips" text,
"magazine" text,
"weight" text,
"imagename" text,
"chamber" text,
"drilledandtapped" text,
"rateoftwist" text,
"itemtype" text,
"additionalfeature1" text,
"additionalfeature2" text,
"additionalfeature3" text,
"shippingweight" text,
"boundbookmanufacturer" text,
"boundbookmodel" text,
"boundbooktype" text,
"nfathreadpattern" text,
"nfaattachmentmethod" text,
"nfabaffletype" text,
"silencercanbedisassembled" text,
"silencerconstructionmaterial" text,
"nfadbreduction" text,
"silenceroutsidediameter" text,
"nfaform3Caliber" text,
"opticmagnification" text,
"maintubesize" text,
"adjustableobjective" text,
"objectivesize" text,
"opticadjustments" text,
"illuminatedreticle" text,
"reticle" text,
"exclusive" text,
"quantity" varchar(10) DEFAULT NULL,
"allocated" text,
"onsale" text,
"price" double precision,
"currentprice" double precision,
"retailmap" double precision,
"fflrequired" text,
"sotrequired" text,
"exclusivetype" text,
"scopecoverincluded" text,
"special" text,
"sightstype" text,
"case" text,
"choke" text,
"dbreduction" text,
"family" text,
"finishtype" text,
"frame" text,
"griptype" varchar(30),
"handgunslidematerial" text,
"countryoforigin" varchar(4),
"itemlength" text,
"itemwidth" text,
"itemheight" text,
"packagelength" double precision,
"packagewidth" double precision,
"packageheight" double precision,
"itemgroup" varchar(40),
"createdon" timestamp
);

View File

@@ -0,0 +1,560 @@
{
"id": "b292aaa5-0ccd-465e-aa88-fc01fe30739d",
"prevId": "00000000-0000-0000-0000-000000000000",
"version": "7",
"dialect": "postgresql",
"tables": {
"public.bal_accounts": {
"name": "bal_accounts",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"identity": {
"type": "always",
"name": "accountsid_seq",
"schema": "public",
"increment": "1",
"startWith": "1",
"minValue": "1",
"maxValue": "2147483647",
"cache": "1",
"cycle": false
}
},
"first_name": {
"name": "first_name",
"type": "varchar(40)",
"primaryKey": false,
"notNull": false
},
"createdon": {
"name": "createdon",
"type": "timestamp",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.lipseycatalog": {
"name": "lipseycatalog",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "integer",
"primaryKey": true,
"notNull": true,
"identity": {
"type": "always",
"name": "lipseycatalog_id_seq",
"schema": "public",
"increment": "1",
"startWith": "1",
"minValue": "1",
"maxValue": "2147483647",
"cache": "1",
"cycle": false
}
},
"itemno": {
"name": "itemno",
"type": "varchar(20)",
"primaryKey": false,
"notNull": true
},
"description1": {
"name": "description1",
"type": "text",
"primaryKey": false,
"notNull": false
},
"description2": {
"name": "description2",
"type": "text",
"primaryKey": false,
"notNull": false
},
"upc": {
"name": "upc",
"type": "varchar(20)",
"primaryKey": false,
"notNull": false
},
"manufacturermodelno": {
"name": "manufacturermodelno",
"type": "varchar(30)",
"primaryKey": false,
"notNull": false
},
"msrp": {
"name": "msrp",
"type": "double precision",
"primaryKey": false,
"notNull": false
},
"model": {
"name": "model",
"type": "text",
"primaryKey": false,
"notNull": false
},
"calibergauge": {
"name": "calibergauge",
"type": "text",
"primaryKey": false,
"notNull": false
},
"manufacturer": {
"name": "manufacturer",
"type": "text",
"primaryKey": false,
"notNull": false
},
"type": {
"name": "type",
"type": "text",
"primaryKey": false,
"notNull": false
},
"action": {
"name": "action",
"type": "text",
"primaryKey": false,
"notNull": false
},
"barrellength": {
"name": "barrellength",
"type": "text",
"primaryKey": false,
"notNull": false
},
"capacity": {
"name": "capacity",
"type": "text",
"primaryKey": false,
"notNull": false
},
"finish": {
"name": "finish",
"type": "text",
"primaryKey": false,
"notNull": false
},
"overalllength": {
"name": "overalllength",
"type": "text",
"primaryKey": false,
"notNull": false
},
"receiver": {
"name": "receiver",
"type": "text",
"primaryKey": false,
"notNull": false
},
"safety": {
"name": "safety",
"type": "text",
"primaryKey": false,
"notNull": false
},
"sights": {
"name": "sights",
"type": "text",
"primaryKey": false,
"notNull": false
},
"stockframegrips": {
"name": "stockframegrips",
"type": "text",
"primaryKey": false,
"notNull": false
},
"magazine": {
"name": "magazine",
"type": "text",
"primaryKey": false,
"notNull": false
},
"weight": {
"name": "weight",
"type": "text",
"primaryKey": false,
"notNull": false
},
"imagename": {
"name": "imagename",
"type": "text",
"primaryKey": false,
"notNull": false
},
"chamber": {
"name": "chamber",
"type": "text",
"primaryKey": false,
"notNull": false
},
"drilledandtapped": {
"name": "drilledandtapped",
"type": "text",
"primaryKey": false,
"notNull": false
},
"rateoftwist": {
"name": "rateoftwist",
"type": "text",
"primaryKey": false,
"notNull": false
},
"itemtype": {
"name": "itemtype",
"type": "text",
"primaryKey": false,
"notNull": false
},
"additionalfeature1": {
"name": "additionalfeature1",
"type": "text",
"primaryKey": false,
"notNull": false
},
"additionalfeature2": {
"name": "additionalfeature2",
"type": "text",
"primaryKey": false,
"notNull": false
},
"additionalfeature3": {
"name": "additionalfeature3",
"type": "text",
"primaryKey": false,
"notNull": false
},
"shippingweight": {
"name": "shippingweight",
"type": "text",
"primaryKey": false,
"notNull": false
},
"boundbookmanufacturer": {
"name": "boundbookmanufacturer",
"type": "text",
"primaryKey": false,
"notNull": false
},
"boundbookmodel": {
"name": "boundbookmodel",
"type": "text",
"primaryKey": false,
"notNull": false
},
"boundbooktype": {
"name": "boundbooktype",
"type": "text",
"primaryKey": false,
"notNull": false
},
"nfathreadpattern": {
"name": "nfathreadpattern",
"type": "text",
"primaryKey": false,
"notNull": false
},
"nfaattachmentmethod": {
"name": "nfaattachmentmethod",
"type": "text",
"primaryKey": false,
"notNull": false
},
"nfabaffletype": {
"name": "nfabaffletype",
"type": "text",
"primaryKey": false,
"notNull": false
},
"silencercanbedisassembled": {
"name": "silencercanbedisassembled",
"type": "text",
"primaryKey": false,
"notNull": false
},
"silencerconstructionmaterial": {
"name": "silencerconstructionmaterial",
"type": "text",
"primaryKey": false,
"notNull": false
},
"nfadbreduction": {
"name": "nfadbreduction",
"type": "text",
"primaryKey": false,
"notNull": false
},
"silenceroutsidediameter": {
"name": "silenceroutsidediameter",
"type": "text",
"primaryKey": false,
"notNull": false
},
"nfaform3Caliber": {
"name": "nfaform3Caliber",
"type": "text",
"primaryKey": false,
"notNull": false
},
"opticmagnification": {
"name": "opticmagnification",
"type": "text",
"primaryKey": false,
"notNull": false
},
"maintubesize": {
"name": "maintubesize",
"type": "text",
"primaryKey": false,
"notNull": false
},
"adjustableobjective": {
"name": "adjustableobjective",
"type": "text",
"primaryKey": false,
"notNull": false
},
"objectivesize": {
"name": "objectivesize",
"type": "text",
"primaryKey": false,
"notNull": false
},
"opticadjustments": {
"name": "opticadjustments",
"type": "text",
"primaryKey": false,
"notNull": false
},
"illuminatedreticle": {
"name": "illuminatedreticle",
"type": "text",
"primaryKey": false,
"notNull": false
},
"reticle": {
"name": "reticle",
"type": "text",
"primaryKey": false,
"notNull": false
},
"exclusive": {
"name": "exclusive",
"type": "text",
"primaryKey": false,
"notNull": false
},
"quantity": {
"name": "quantity",
"type": "varchar(10)",
"primaryKey": false,
"notNull": false,
"default": "NULL"
},
"allocated": {
"name": "allocated",
"type": "text",
"primaryKey": false,
"notNull": false
},
"onsale": {
"name": "onsale",
"type": "text",
"primaryKey": false,
"notNull": false
},
"price": {
"name": "price",
"type": "double precision",
"primaryKey": false,
"notNull": false
},
"currentprice": {
"name": "currentprice",
"type": "double precision",
"primaryKey": false,
"notNull": false
},
"retailmap": {
"name": "retailmap",
"type": "double precision",
"primaryKey": false,
"notNull": false
},
"fflrequired": {
"name": "fflrequired",
"type": "text",
"primaryKey": false,
"notNull": false
},
"sotrequired": {
"name": "sotrequired",
"type": "text",
"primaryKey": false,
"notNull": false
},
"exclusivetype": {
"name": "exclusivetype",
"type": "text",
"primaryKey": false,
"notNull": false
},
"scopecoverincluded": {
"name": "scopecoverincluded",
"type": "text",
"primaryKey": false,
"notNull": false
},
"special": {
"name": "special",
"type": "text",
"primaryKey": false,
"notNull": false
},
"sightstype": {
"name": "sightstype",
"type": "text",
"primaryKey": false,
"notNull": false
},
"case": {
"name": "case",
"type": "text",
"primaryKey": false,
"notNull": false
},
"choke": {
"name": "choke",
"type": "text",
"primaryKey": false,
"notNull": false
},
"dbreduction": {
"name": "dbreduction",
"type": "text",
"primaryKey": false,
"notNull": false
},
"family": {
"name": "family",
"type": "text",
"primaryKey": false,
"notNull": false
},
"finishtype": {
"name": "finishtype",
"type": "text",
"primaryKey": false,
"notNull": false
},
"frame": {
"name": "frame",
"type": "text",
"primaryKey": false,
"notNull": false
},
"griptype": {
"name": "griptype",
"type": "varchar(30)",
"primaryKey": false,
"notNull": false
},
"handgunslidematerial": {
"name": "handgunslidematerial",
"type": "text",
"primaryKey": false,
"notNull": false
},
"countryoforigin": {
"name": "countryoforigin",
"type": "varchar(4)",
"primaryKey": false,
"notNull": false
},
"itemlength": {
"name": "itemlength",
"type": "text",
"primaryKey": false,
"notNull": false
},
"itemwidth": {
"name": "itemwidth",
"type": "text",
"primaryKey": false,
"notNull": false
},
"itemheight": {
"name": "itemheight",
"type": "text",
"primaryKey": false,
"notNull": false
},
"packagelength": {
"name": "packagelength",
"type": "double precision",
"primaryKey": false,
"notNull": false
},
"packagewidth": {
"name": "packagewidth",
"type": "double precision",
"primaryKey": false,
"notNull": false
},
"packageheight": {
"name": "packageheight",
"type": "double precision",
"primaryKey": false,
"notNull": false
},
"itemgroup": {
"name": "itemgroup",
"type": "varchar(40)",
"primaryKey": false,
"notNull": false
},
"createdon": {
"name": "createdon",
"type": "timestamp",
"primaryKey": false,
"notNull": false
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
}
},
"enums": {},
"schemas": {},
"sequences": {},
"roles": {},
"policies": {},
"views": {},
"_meta": {
"columns": {},
"schemas": {},
"tables": {}
}
}

View File

@@ -0,0 +1,20 @@
{
"version": "7",
"dialect": "postgresql",
"entries": [
{
"idx": 0,
"version": "7",
"when": 1731960469559,
"tag": "0000_right_arclight",
"breakpoints": true
},
{
"idx": 1,
"version": "7",
"when": 1731986158709,
"tag": "0001_sweet_night_nurse",
"breakpoints": true
}
]
}