diff --git a/bizmatch-server/src/drizzle/import.ts b/bizmatch-server/src/drizzle/import.ts
index 1f3a744..422e27c 100644
--- a/bizmatch-server/src/drizzle/import.ts
+++ b/bizmatch-server/src/drizzle/import.ts
@@ -5,7 +5,7 @@ import { join } from 'path';
import pkg from 'pg';
import { rimraf } from 'rimraf';
import sharp from 'sharp';
-import { BusinessListing, CommercialPropertyListing, User } from 'src/models/db.model.js';
+import { BusinessListing, CommercialPropertyListing, User, UserData } from 'src/models/db.model.js';
import * as schema from './schema.js';
const { Pool } = pkg;
@@ -22,9 +22,9 @@ await db.delete(schema.users);
//Broker
let filePath = `./data/broker.json`;
let data: string = readFileSync(filePath, 'utf8');
-const userData: User[] = JSON.parse(data); // Erwartet ein Array von Objekten
+const usersData: UserData[] = JSON.parse(data); // Erwartet ein Array von Objekten
const generatedUserData = [];
-console.log(userData.length);
+console.log(usersData.length);
let i = 0,
male = 0,
female = 0;
@@ -32,11 +32,32 @@ const targetPathProfile = `./pictures/profile`;
deleteFilesOfDir(targetPathProfile);
const targetPathLogo = `./pictures/logo`;
deleteFilesOfDir(targetPathLogo);
-for (const user of userData) {
- delete user.id;
- user.licensedIn = user.licensedIn.map(l => `${l['name']}|${l['value']}`);
+for (const userData of usersData) {
+ const user: User = { firstname: '', lastname: '', email: '' };
+ user.licensedIn = [];
+ userData.licensedIn.forEach(l => {
+ console.log(l['value'], l['name']);
+ user.licensedIn.push({ registerNo: l['value'], state: l['name'] });
+ });
+ user.areasServed = [];
+ user.areasServed = userData.areasServed.map(l => {
+ return { county: l.split(',')[0].trim(), state: l.split(',')[1].trim() };
+ });
user.hasCompanyLogo = true;
user.hasProfile = true;
+ user.firstname = userData.firstname;
+ user.lastname = userData.lastname;
+ user.email = userData.email;
+ user.phoneNumber = userData.phoneNumber;
+ user.description = userData.description;
+ user.companyName = userData.companyName;
+ user.companyOverview = userData.companyOverview;
+ user.companyWebsite = userData.companyWebsite;
+ user.companyLocation = userData.companyLocation;
+ user.offeredServices = userData.offeredServices;
+ user.gender = userData.gender;
+ user.created = new Date();
+ user.updated = new Date();
const u = await db.insert(schema.users).values(user).returning({ insertedId: schema.users.id, gender: schema.users.gender });
generatedUserData.push(u[0].insertedId);
i++;
@@ -46,7 +67,7 @@ for (const user of userData) {
await storeProfilePicture(data, u[0].insertedId);
} else {
female++;
- const data = readFileSync(`./pictures/profile_base/Frau_${male}.jpg`);
+ const data = readFileSync(`./pictures/profile_base/Frau_${female}.jpg`);
await storeProfilePicture(data, u[0].insertedId);
}
const data = readFileSync(`./pictures/logos_base/${i}.jpg`);
@@ -60,6 +81,7 @@ const businessJsonData = JSON.parse(data) as BusinessListing[]; // Erwartet ein
for (const business of businessJsonData) {
delete business.id;
business.created = new Date(business.created);
+ business.updated = new Date(business.created);
business.userId = getRandomItem(generatedUserData);
await db.insert(schema.businesses).values(business);
}
@@ -73,7 +95,9 @@ for (const commercial of commercialJsonData) {
commercial.imageOrder = getFilenames(id);
commercial.imagePath = id;
- commercial.created = getRandomDateWithinLastYear();
+ const insertionDate = getRandomDateWithinLastYear();
+ commercial.created = insertionDate;
+ commercial.updated = insertionDate;
commercial.userId = getRandomItem(generatedUserData);
await db.insert(schema.commercials).values(commercial);
}
diff --git a/bizmatch-server/src/drizzle/migrations/0000_third_spacker_dave.sql b/bizmatch-server/src/drizzle/migrations/0000_open_hannibal_king.sql
similarity index 89%
rename from bizmatch-server/src/drizzle/migrations/0000_third_spacker_dave.sql
rename to bizmatch-server/src/drizzle/migrations/0000_open_hannibal_king.sql
index 4c9c7bf..def5616 100644
--- a/bizmatch-server/src/drizzle/migrations/0000_third_spacker_dave.sql
+++ b/bizmatch-server/src/drizzle/migrations/0000_open_hannibal_king.sql
@@ -1,3 +1,9 @@
+DO $$ BEGIN
+ CREATE TYPE "gender" AS ENUM('male', 'female');
+EXCEPTION
+ WHEN duplicate_object THEN null;
+END $$;
+--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "businesses" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"userId" uuid,
@@ -38,6 +44,7 @@ CREATE TABLE IF NOT EXISTS "commercials" (
"state" char(2),
"price" double precision,
"favoritesForUser" varchar(30)[],
+ "listingsCategory" varchar(255),
"hideImage" boolean,
"draft" boolean,
"zipCode" integer,
@@ -45,7 +52,7 @@ CREATE TABLE IF NOT EXISTS "commercials" (
"email" varchar(255),
"website" varchar(255),
"phoneNumber" varchar(255),
- "imageOrder" varchar(30)[],
+ "imageOrder" varchar(200)[],
"imagePath" varchar(50),
"created" timestamp,
"updated" timestamp,
@@ -65,10 +72,11 @@ CREATE TABLE IF NOT EXISTS "users" (
"companyWebsite" varchar(255),
"companyLocation" varchar(255),
"offeredServices" text,
- "areasServed" varchar(100)[],
+ "areasServed" jsonb,
"hasProfile" boolean,
"hasCompanyLogo" boolean,
- "licensedIn" varchar(50)[]
+ "licensedIn" jsonb,
+ "gender" "gender"
);
--> statement-breakpoint
DO $$ BEGIN
diff --git a/bizmatch-server/src/drizzle/migrations/0001_charming_thundra.sql b/bizmatch-server/src/drizzle/migrations/0001_charming_thundra.sql
new file mode 100644
index 0000000..e211d48
--- /dev/null
+++ b/bizmatch-server/src/drizzle/migrations/0001_charming_thundra.sql
@@ -0,0 +1,2 @@
+ALTER TABLE "users" ADD COLUMN "created" timestamp;--> statement-breakpoint
+ALTER TABLE "users" ADD COLUMN "updated" timestamp;
\ No newline at end of file
diff --git a/bizmatch-server/src/drizzle/migrations/0001_rapid_daimon_hellstrom.sql b/bizmatch-server/src/drizzle/migrations/0001_rapid_daimon_hellstrom.sql
deleted file mode 100644
index 6ccab12..0000000
--- a/bizmatch-server/src/drizzle/migrations/0001_rapid_daimon_hellstrom.sql
+++ /dev/null
@@ -1 +0,0 @@
-ALTER TABLE "commercials" ALTER COLUMN "imageOrder" SET DATA TYPE varchar(200)[];
\ No newline at end of file
diff --git a/bizmatch-server/src/drizzle/migrations/0002_black_zaladane.sql b/bizmatch-server/src/drizzle/migrations/0002_black_zaladane.sql
deleted file mode 100644
index eda9b80..0000000
--- a/bizmatch-server/src/drizzle/migrations/0002_black_zaladane.sql
+++ /dev/null
@@ -1,7 +0,0 @@
-DO $$ BEGIN
- CREATE TYPE "gender" AS ENUM('male', 'female');
-EXCEPTION
- WHEN duplicate_object THEN null;
-END $$;
---> statement-breakpoint
-ALTER TABLE "users" ADD COLUMN "gender" "gender";
\ No newline at end of file
diff --git a/bizmatch-server/src/drizzle/migrations/0003_tough_hobgoblin.sql b/bizmatch-server/src/drizzle/migrations/0003_tough_hobgoblin.sql
deleted file mode 100644
index 952bbdd..0000000
--- a/bizmatch-server/src/drizzle/migrations/0003_tough_hobgoblin.sql
+++ /dev/null
@@ -1 +0,0 @@
-ALTER TABLE "commercials" ADD COLUMN "listingsCategory" varchar(255);
\ No newline at end of file
diff --git a/bizmatch-server/src/drizzle/migrations/meta/0000_snapshot.json b/bizmatch-server/src/drizzle/migrations/meta/0000_snapshot.json
index ee3919b..140155f 100644
--- a/bizmatch-server/src/drizzle/migrations/meta/0000_snapshot.json
+++ b/bizmatch-server/src/drizzle/migrations/meta/0000_snapshot.json
@@ -1,5 +1,5 @@
{
- "id": "f6d421f9-2394-4a1c-9268-9e46285f0a41",
+ "id": "98e2be90-3301-49a8-b323-78d9d8f79cb5",
"prevId": "00000000-0000-0000-0000-000000000000",
"version": "5",
"dialect": "pg",
@@ -250,6 +250,12 @@
"primaryKey": false,
"notNull": false
},
+ "listingsCategory": {
+ "name": "listingsCategory",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": false
+ },
"hideImage": {
"name": "hideImage",
"type": "boolean",
@@ -294,7 +300,7 @@
},
"imageOrder": {
"name": "imageOrder",
- "type": "varchar(30)[]",
+ "type": "varchar(200)[]",
"primaryKey": false,
"notNull": false
},
@@ -421,7 +427,7 @@
},
"areasServed": {
"name": "areasServed",
- "type": "varchar(100)[]",
+ "type": "jsonb",
"primaryKey": false,
"notNull": false
},
@@ -439,7 +445,13 @@
},
"licensedIn": {
"name": "licensedIn",
- "type": "varchar(50)[]",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gender": {
+ "name": "gender",
+ "type": "gender",
"primaryKey": false,
"notNull": false
}
@@ -450,7 +462,15 @@
"uniqueConstraints": {}
}
},
- "enums": {},
+ "enums": {
+ "gender": {
+ "name": "gender",
+ "values": {
+ "male": "male",
+ "female": "female"
+ }
+ }
+ },
"schemas": {},
"_meta": {
"columns": {},
diff --git a/bizmatch-server/src/drizzle/migrations/meta/0001_snapshot.json b/bizmatch-server/src/drizzle/migrations/meta/0001_snapshot.json
index 61a17bb..49144b2 100644
--- a/bizmatch-server/src/drizzle/migrations/meta/0001_snapshot.json
+++ b/bizmatch-server/src/drizzle/migrations/meta/0001_snapshot.json
@@ -1,6 +1,6 @@
{
- "id": "3e4b8c5f-4474-4877-abec-38283408ee34",
- "prevId": "f6d421f9-2394-4a1c-9268-9e46285f0a41",
+ "id": "41802273-1335-433f-97cb-77774ddb3362",
+ "prevId": "98e2be90-3301-49a8-b323-78d9d8f79cb5",
"version": "5",
"dialect": "pg",
"tables": {
@@ -250,6 +250,12 @@
"primaryKey": false,
"notNull": false
},
+ "listingsCategory": {
+ "name": "listingsCategory",
+ "type": "varchar(255)",
+ "primaryKey": false,
+ "notNull": false
+ },
"hideImage": {
"name": "hideImage",
"type": "boolean",
@@ -421,7 +427,7 @@
},
"areasServed": {
"name": "areasServed",
- "type": "varchar(100)[]",
+ "type": "jsonb",
"primaryKey": false,
"notNull": false
},
@@ -439,7 +445,25 @@
},
"licensedIn": {
"name": "licensedIn",
- "type": "varchar(50)[]",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "gender": {
+ "name": "gender",
+ "type": "gender",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created": {
+ "name": "created",
+ "type": "timestamp",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "updated": {
+ "name": "updated",
+ "type": "timestamp",
"primaryKey": false,
"notNull": false
}
@@ -450,7 +474,15 @@
"uniqueConstraints": {}
}
},
- "enums": {},
+ "enums": {
+ "gender": {
+ "name": "gender",
+ "values": {
+ "male": "male",
+ "female": "female"
+ }
+ }
+ },
"schemas": {},
"_meta": {
"columns": {},
diff --git a/bizmatch-server/src/drizzle/migrations/meta/0002_snapshot.json b/bizmatch-server/src/drizzle/migrations/meta/0002_snapshot.json
deleted file mode 100644
index 8f4dff0..0000000
--- a/bizmatch-server/src/drizzle/migrations/meta/0002_snapshot.json
+++ /dev/null
@@ -1,474 +0,0 @@
-{
- "id": "ad48c6eb-2d04-442f-9242-b6765553c7c4",
- "prevId": "3e4b8c5f-4474-4877-abec-38283408ee34",
- "version": "5",
- "dialect": "pg",
- "tables": {
- "businesses": {
- "name": "businesses",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "uuid",
- "primaryKey": true,
- "notNull": true,
- "default": "gen_random_uuid()"
- },
- "userId": {
- "name": "userId",
- "type": "uuid",
- "primaryKey": false,
- "notNull": false
- },
- "type": {
- "name": "type",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "title": {
- "name": "title",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "city": {
- "name": "city",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "state": {
- "name": "state",
- "type": "char(2)",
- "primaryKey": false,
- "notNull": false
- },
- "price": {
- "name": "price",
- "type": "double precision",
- "primaryKey": false,
- "notNull": false
- },
- "favoritesForUser": {
- "name": "favoritesForUser",
- "type": "varchar(30)[]",
- "primaryKey": false,
- "notNull": false
- },
- "draft": {
- "name": "draft",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "listingsCategory": {
- "name": "listingsCategory",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "realEstateIncluded": {
- "name": "realEstateIncluded",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "leasedLocation": {
- "name": "leasedLocation",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "franchiseResale": {
- "name": "franchiseResale",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "salesRevenue": {
- "name": "salesRevenue",
- "type": "double precision",
- "primaryKey": false,
- "notNull": false
- },
- "cashFlow": {
- "name": "cashFlow",
- "type": "double precision",
- "primaryKey": false,
- "notNull": false
- },
- "supportAndTraining": {
- "name": "supportAndTraining",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "employees": {
- "name": "employees",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "established": {
- "name": "established",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "internalListingNumber": {
- "name": "internalListingNumber",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "reasonForSale": {
- "name": "reasonForSale",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "brokerLicencing": {
- "name": "brokerLicencing",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "internals": {
- "name": "internals",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created": {
- "name": "created",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated": {
- "name": "updated",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "visits": {
- "name": "visits",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "lastVisit": {
- "name": "lastVisit",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "businesses_userId_users_id_fk": {
- "name": "businesses_userId_users_id_fk",
- "tableFrom": "businesses",
- "tableTo": "users",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "commercials": {
- "name": "commercials",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "uuid",
- "primaryKey": true,
- "notNull": true,
- "default": "gen_random_uuid()"
- },
- "userId": {
- "name": "userId",
- "type": "uuid",
- "primaryKey": false,
- "notNull": false
- },
- "type": {
- "name": "type",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "title": {
- "name": "title",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "city": {
- "name": "city",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "state": {
- "name": "state",
- "type": "char(2)",
- "primaryKey": false,
- "notNull": false
- },
- "price": {
- "name": "price",
- "type": "double precision",
- "primaryKey": false,
- "notNull": false
- },
- "favoritesForUser": {
- "name": "favoritesForUser",
- "type": "varchar(30)[]",
- "primaryKey": false,
- "notNull": false
- },
- "hideImage": {
- "name": "hideImage",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "draft": {
- "name": "draft",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "zipCode": {
- "name": "zipCode",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "county": {
- "name": "county",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "email": {
- "name": "email",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "website": {
- "name": "website",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "phoneNumber": {
- "name": "phoneNumber",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "imageOrder": {
- "name": "imageOrder",
- "type": "varchar(200)[]",
- "primaryKey": false,
- "notNull": false
- },
- "imagePath": {
- "name": "imagePath",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": false
- },
- "created": {
- "name": "created",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated": {
- "name": "updated",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "visits": {
- "name": "visits",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "lastVisit": {
- "name": "lastVisit",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "commercials_userId_users_id_fk": {
- "name": "commercials_userId_users_id_fk",
- "tableFrom": "commercials",
- "tableTo": "users",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "users": {
- "name": "users",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "uuid",
- "primaryKey": true,
- "notNull": true,
- "default": "gen_random_uuid()"
- },
- "firstname": {
- "name": "firstname",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true
- },
- "lastname": {
- "name": "lastname",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true
- },
- "email": {
- "name": "email",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true
- },
- "phoneNumber": {
- "name": "phoneNumber",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "companyName": {
- "name": "companyName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "companyOverview": {
- "name": "companyOverview",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "companyWebsite": {
- "name": "companyWebsite",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "companyLocation": {
- "name": "companyLocation",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "offeredServices": {
- "name": "offeredServices",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "areasServed": {
- "name": "areasServed",
- "type": "varchar(100)[]",
- "primaryKey": false,
- "notNull": false
- },
- "hasProfile": {
- "name": "hasProfile",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "hasCompanyLogo": {
- "name": "hasCompanyLogo",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "licensedIn": {
- "name": "licensedIn",
- "type": "varchar(50)[]",
- "primaryKey": false,
- "notNull": false
- },
- "gender": {
- "name": "gender",
- "type": "gender",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- }
- },
- "enums": {
- "gender": {
- "name": "gender",
- "values": {
- "male": "male",
- "female": "female"
- }
- }
- },
- "schemas": {},
- "_meta": {
- "columns": {},
- "schemas": {},
- "tables": {}
- }
-}
\ No newline at end of file
diff --git a/bizmatch-server/src/drizzle/migrations/meta/0003_snapshot.json b/bizmatch-server/src/drizzle/migrations/meta/0003_snapshot.json
deleted file mode 100644
index 939c657..0000000
--- a/bizmatch-server/src/drizzle/migrations/meta/0003_snapshot.json
+++ /dev/null
@@ -1,480 +0,0 @@
-{
- "id": "da786c6a-fd5f-4629-bd5e-3ecd42ab1f2c",
- "prevId": "ad48c6eb-2d04-442f-9242-b6765553c7c4",
- "version": "5",
- "dialect": "pg",
- "tables": {
- "businesses": {
- "name": "businesses",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "uuid",
- "primaryKey": true,
- "notNull": true,
- "default": "gen_random_uuid()"
- },
- "userId": {
- "name": "userId",
- "type": "uuid",
- "primaryKey": false,
- "notNull": false
- },
- "type": {
- "name": "type",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "title": {
- "name": "title",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "city": {
- "name": "city",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "state": {
- "name": "state",
- "type": "char(2)",
- "primaryKey": false,
- "notNull": false
- },
- "price": {
- "name": "price",
- "type": "double precision",
- "primaryKey": false,
- "notNull": false
- },
- "favoritesForUser": {
- "name": "favoritesForUser",
- "type": "varchar(30)[]",
- "primaryKey": false,
- "notNull": false
- },
- "draft": {
- "name": "draft",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "listingsCategory": {
- "name": "listingsCategory",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "realEstateIncluded": {
- "name": "realEstateIncluded",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "leasedLocation": {
- "name": "leasedLocation",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "franchiseResale": {
- "name": "franchiseResale",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "salesRevenue": {
- "name": "salesRevenue",
- "type": "double precision",
- "primaryKey": false,
- "notNull": false
- },
- "cashFlow": {
- "name": "cashFlow",
- "type": "double precision",
- "primaryKey": false,
- "notNull": false
- },
- "supportAndTraining": {
- "name": "supportAndTraining",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "employees": {
- "name": "employees",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "established": {
- "name": "established",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "internalListingNumber": {
- "name": "internalListingNumber",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "reasonForSale": {
- "name": "reasonForSale",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "brokerLicencing": {
- "name": "brokerLicencing",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "internals": {
- "name": "internals",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "created": {
- "name": "created",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated": {
- "name": "updated",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "visits": {
- "name": "visits",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "lastVisit": {
- "name": "lastVisit",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "businesses_userId_users_id_fk": {
- "name": "businesses_userId_users_id_fk",
- "tableFrom": "businesses",
- "tableTo": "users",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "commercials": {
- "name": "commercials",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "uuid",
- "primaryKey": true,
- "notNull": true,
- "default": "gen_random_uuid()"
- },
- "userId": {
- "name": "userId",
- "type": "uuid",
- "primaryKey": false,
- "notNull": false
- },
- "type": {
- "name": "type",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "title": {
- "name": "title",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "city": {
- "name": "city",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "state": {
- "name": "state",
- "type": "char(2)",
- "primaryKey": false,
- "notNull": false
- },
- "price": {
- "name": "price",
- "type": "double precision",
- "primaryKey": false,
- "notNull": false
- },
- "favoritesForUser": {
- "name": "favoritesForUser",
- "type": "varchar(30)[]",
- "primaryKey": false,
- "notNull": false
- },
- "listingsCategory": {
- "name": "listingsCategory",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "hideImage": {
- "name": "hideImage",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "draft": {
- "name": "draft",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "zipCode": {
- "name": "zipCode",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "county": {
- "name": "county",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "email": {
- "name": "email",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "website": {
- "name": "website",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "phoneNumber": {
- "name": "phoneNumber",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "imageOrder": {
- "name": "imageOrder",
- "type": "varchar(200)[]",
- "primaryKey": false,
- "notNull": false
- },
- "imagePath": {
- "name": "imagePath",
- "type": "varchar(50)",
- "primaryKey": false,
- "notNull": false
- },
- "created": {
- "name": "created",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "updated": {
- "name": "updated",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- },
- "visits": {
- "name": "visits",
- "type": "integer",
- "primaryKey": false,
- "notNull": false
- },
- "lastVisit": {
- "name": "lastVisit",
- "type": "timestamp",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {
- "commercials_userId_users_id_fk": {
- "name": "commercials_userId_users_id_fk",
- "tableFrom": "commercials",
- "tableTo": "users",
- "columnsFrom": [
- "userId"
- ],
- "columnsTo": [
- "id"
- ],
- "onDelete": "no action",
- "onUpdate": "no action"
- }
- },
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- },
- "users": {
- "name": "users",
- "schema": "",
- "columns": {
- "id": {
- "name": "id",
- "type": "uuid",
- "primaryKey": true,
- "notNull": true,
- "default": "gen_random_uuid()"
- },
- "firstname": {
- "name": "firstname",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true
- },
- "lastname": {
- "name": "lastname",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true
- },
- "email": {
- "name": "email",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": true
- },
- "phoneNumber": {
- "name": "phoneNumber",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "description": {
- "name": "description",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "companyName": {
- "name": "companyName",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "companyOverview": {
- "name": "companyOverview",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "companyWebsite": {
- "name": "companyWebsite",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "companyLocation": {
- "name": "companyLocation",
- "type": "varchar(255)",
- "primaryKey": false,
- "notNull": false
- },
- "offeredServices": {
- "name": "offeredServices",
- "type": "text",
- "primaryKey": false,
- "notNull": false
- },
- "areasServed": {
- "name": "areasServed",
- "type": "varchar(100)[]",
- "primaryKey": false,
- "notNull": false
- },
- "hasProfile": {
- "name": "hasProfile",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "hasCompanyLogo": {
- "name": "hasCompanyLogo",
- "type": "boolean",
- "primaryKey": false,
- "notNull": false
- },
- "licensedIn": {
- "name": "licensedIn",
- "type": "varchar(50)[]",
- "primaryKey": false,
- "notNull": false
- },
- "gender": {
- "name": "gender",
- "type": "gender",
- "primaryKey": false,
- "notNull": false
- }
- },
- "indexes": {},
- "foreignKeys": {},
- "compositePrimaryKeys": {},
- "uniqueConstraints": {}
- }
- },
- "enums": {
- "gender": {
- "name": "gender",
- "values": {
- "male": "male",
- "female": "female"
- }
- }
- },
- "schemas": {},
- "_meta": {
- "columns": {},
- "schemas": {},
- "tables": {}
- }
-}
\ No newline at end of file
diff --git a/bizmatch-server/src/drizzle/migrations/meta/_journal.json b/bizmatch-server/src/drizzle/migrations/meta/_journal.json
index 9153cf7..318a7de 100644
--- a/bizmatch-server/src/drizzle/migrations/meta/_journal.json
+++ b/bizmatch-server/src/drizzle/migrations/meta/_journal.json
@@ -5,29 +5,15 @@
{
"idx": 0,
"version": "5",
- "when": 1714913766996,
- "tag": "0000_third_spacker_dave",
+ "when": 1715627517508,
+ "tag": "0000_open_hannibal_king",
"breakpoints": true
},
{
"idx": 1,
"version": "5",
- "when": 1714981666488,
- "tag": "0001_rapid_daimon_hellstrom",
- "breakpoints": true
- },
- {
- "idx": 2,
- "version": "5",
- "when": 1714982539265,
- "tag": "0002_black_zaladane",
- "breakpoints": true
- },
- {
- "idx": 3,
- "version": "5",
- "when": 1715254754561,
- "tag": "0003_tough_hobgoblin",
+ "when": 1715631674334,
+ "tag": "0001_charming_thundra",
"breakpoints": true
}
]
diff --git a/bizmatch-server/src/drizzle/schema.ts b/bizmatch-server/src/drizzle/schema.ts
index 560453e..ad22ce1 100644
--- a/bizmatch-server/src/drizzle/schema.ts
+++ b/bizmatch-server/src/drizzle/schema.ts
@@ -1,4 +1,5 @@
-import { boolean, char, doublePrecision, integer, pgEnum, pgTable, text, timestamp, uuid, varchar } from 'drizzle-orm/pg-core';
+import { boolean, char, doublePrecision, integer, jsonb, pgEnum, pgTable, text, timestamp, uuid, varchar } from 'drizzle-orm/pg-core';
+import { AreasServed, LicensedIn } from 'src/models/db.model';
export const PG_CONNECTION = 'PG_CONNECTION';
export const genderEnum = pgEnum('gender', ['male', 'female']);
@@ -14,11 +15,13 @@ export const users = pgTable('users', {
companyWebsite: varchar('companyWebsite', { length: 255 }),
companyLocation: varchar('companyLocation', { length: 255 }),
offeredServices: text('offeredServices'),
- areasServed: varchar('areasServed', { length: 100 }).array(),
+ areasServed: jsonb('areasServed').$type Hey {{ name }}, You got an inquiry a Dear {{ name }}, You got an inquiry regarding your '{{title}}'' listing
- {{inquiry}}
-
Contact Name: {{iname}}
+Contact Phone: {{phone}}
+Contact Mail: {{email}}
+Contact Name: {{iname}}
+Comments: {{inquiry}}
+ +Internal Listing Number: {{internalListingNumber}}
\ No newline at end of file diff --git a/bizmatch-server/src/models/db.model.ts b/bizmatch-server/src/models/db.model.ts index 84e1e37..71c9daf 100644 --- a/bizmatch-server/src/models/db.model.ts +++ b/bizmatch-server/src/models/db.model.ts @@ -1,4 +1,24 @@ export interface User { + id?: string; + firstname: string; + lastname: string; + email: string; + phoneNumber?: string; + description?: string; + companyName?: string; + companyOverview?: string; + companyWebsite?: string; + companyLocation?: string; + offeredServices?: string; + areasServed?: AreasServed[]; + hasProfile?: boolean; + hasCompanyLogo?: boolean; + licensedIn?: LicensedIn[]; + gender?: 'male' | 'female'; + created?: Date; + updated?: Date; +} +export interface UserData { id?: string; firstname: string; lastname: string; @@ -14,8 +34,10 @@ export interface User { hasProfile?: boolean; hasCompanyLogo?: boolean; licensedIn?: string[]; + gender?: 'male' | 'female'; + created?: Date; + updated?: Date; } - export interface BusinessListing { id: string; userId?: string; @@ -71,3 +93,11 @@ export interface CommercialPropertyListing { lastVisit?: Date; listingsCategory?: string; } +export interface AreasServed { + county: string; + state: string; +} +export interface LicensedIn { + registerNo: string; + state: string; +} diff --git a/bizmatch-server/src/user/user.service.ts b/bizmatch-server/src/user/user.service.ts index 4142932..c52779e 100644 --- a/bizmatch-server/src/user/user.service.ts +++ b/bizmatch-server/src/user/user.service.ts @@ -2,11 +2,11 @@ import { Inject, Injectable } from '@nestjs/common'; import { and, eq, ilike, or, sql } from 'drizzle-orm'; import { NodePgDatabase } from 'drizzle-orm/node-postgres/driver.js'; import { WINSTON_MODULE_PROVIDER } from 'nest-winston'; -import { PG_CONNECTION } from 'src/drizzle/schema.js'; -import { User } from 'src/models/db.model.js'; import { Logger } from 'winston'; import * as schema from '../drizzle/schema.js'; +import { PG_CONNECTION } from '../drizzle/schema.js'; import { FileService } from '../file/file.service.js'; +import { User } from '../models/db.model.js'; import { ListingCriteria } from '../models/main.model.js'; @Injectable() @@ -48,9 +48,13 @@ export class UserService { } async saveUser(user: any): Promise
+
} @else {
}
@@ -34,7 +34,7 @@
+
}
@@ -74,10 +74,10 @@