Umbau zu tailwind + mobile friendly: LandingPage & Footer
This commit is contained in:
34
bizmatch-server/src/drizzle/import.js
Normal file
34
bizmatch-server/src/drizzle/import.js
Normal file
@@ -0,0 +1,34 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
require("dotenv/config");
|
||||
var node_postgres_1 = require("drizzle-orm/node-postgres");
|
||||
var pg_1 = require("pg");
|
||||
var Client = pg_1.default.Client;
|
||||
var schema = require("./schema.js");
|
||||
var fs_1 = require("fs");
|
||||
var connectionString = process.env.DATABASE_URL;
|
||||
// const pool = new Pool({connectionString})
|
||||
var client = new Client({ connectionString: connectionString });
|
||||
var db = (0, node_postgres_1.drizzle)(client, { schema: schema, logger: true });
|
||||
//Broker
|
||||
var filePath = "./data/broker.json";
|
||||
var data = (0, fs_1.readFileSync)(filePath, 'utf8');
|
||||
var jsonData = JSON.parse(data); // Erwartet ein Array von Objekten
|
||||
await db.delete(schema.users);
|
||||
console.log(jsonData.length);
|
||||
for (var _i = 0, jsonData_1 = jsonData; _i < jsonData_1.length; _i++) {
|
||||
var user = jsonData_1[_i];
|
||||
delete user.id;
|
||||
await db.insert(schema.users).values(user);
|
||||
}
|
||||
//Business Listings
|
||||
// filePath = `./data/businesses.json`
|
||||
// data = readFileSync(filePath, 'utf8');
|
||||
// jsonData = JSON.parse(data); // Erwartet ein Array von Objekten
|
||||
// db.delete(schema.businesses);
|
||||
// for (const business of jsonData) {
|
||||
// delete business.id
|
||||
// await db.insert(schema.businesses).values(business);
|
||||
// }
|
||||
//End
|
||||
//await client.end()
|
||||
@@ -63,6 +63,8 @@ for (const userData of usersData) {
|
||||
user.companyLocation = userData.companyLocation;
|
||||
user.offeredServices = userData.offeredServices;
|
||||
user.gender = userData.gender;
|
||||
user.customerType = 'professional';
|
||||
user.customerSubType = 'broker';
|
||||
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, email: schema.users.email });
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
DO $$ BEGIN
|
||||
CREATE TYPE "customerSubType" AS ENUM('broker', 'cpa', 'attorney', 'titleCompany', 'surveyor', 'appraiser');
|
||||
EXCEPTION
|
||||
WHEN duplicate_object THEN null;
|
||||
END $$;
|
||||
--> statement-breakpoint
|
||||
DO $$ BEGIN
|
||||
CREATE TYPE "customerType" AS ENUM('buyer', 'professional');
|
||||
EXCEPTION
|
||||
WHEN duplicate_object THEN null;
|
||||
END $$;
|
||||
--> statement-breakpoint
|
||||
DO $$ BEGIN
|
||||
CREATE TYPE "gender" AS ENUM('male', 'female');
|
||||
EXCEPTION
|
||||
@@ -79,6 +91,8 @@ CREATE TABLE IF NOT EXISTS "users" (
|
||||
"hasCompanyLogo" boolean,
|
||||
"licensedIn" jsonb,
|
||||
"gender" "gender",
|
||||
"customerType" "customerType",
|
||||
"customerSubType" "customerSubType",
|
||||
"created" timestamp,
|
||||
"updated" timestamp
|
||||
);
|
||||
@@ -1,7 +0,0 @@
|
||||
DO $$ BEGIN
|
||||
CREATE TYPE "customerType" AS ENUM('buyer', 'broker', 'professional');
|
||||
EXCEPTION
|
||||
WHEN duplicate_object THEN null;
|
||||
END $$;
|
||||
--> statement-breakpoint
|
||||
ALTER TABLE "users" ADD COLUMN "customerType" "customerType";
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"id": "fc58c59b-ac5c-406e-8fdb-b05de40aed17",
|
||||
"id": "f8241dfe-8f15-4656-aeb5-c9ef0ad65f28",
|
||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
||||
"version": "5",
|
||||
"dialect": "pg",
|
||||
@@ -467,6 +467,18 @@
|
||||
"primaryKey": false,
|
||||
"notNull": false
|
||||
},
|
||||
"customerType": {
|
||||
"name": "customerType",
|
||||
"type": "customerType",
|
||||
"primaryKey": false,
|
||||
"notNull": false
|
||||
},
|
||||
"customerSubType": {
|
||||
"name": "customerSubType",
|
||||
"type": "customerSubType",
|
||||
"primaryKey": false,
|
||||
"notNull": false
|
||||
},
|
||||
"created": {
|
||||
"name": "created",
|
||||
"type": "timestamp",
|
||||
@@ -487,6 +499,24 @@
|
||||
}
|
||||
},
|
||||
"enums": {
|
||||
"customerSubType": {
|
||||
"name": "customerSubType",
|
||||
"values": {
|
||||
"broker": "broker",
|
||||
"cpa": "cpa",
|
||||
"attorney": "attorney",
|
||||
"titleCompany": "titleCompany",
|
||||
"surveyor": "surveyor",
|
||||
"appraiser": "appraiser"
|
||||
}
|
||||
},
|
||||
"customerType": {
|
||||
"name": "customerType",
|
||||
"values": {
|
||||
"buyer": "buyer",
|
||||
"professional": "professional"
|
||||
}
|
||||
},
|
||||
"gender": {
|
||||
"name": "gender",
|
||||
"values": {
|
||||
|
||||
@@ -1,518 +0,0 @@
|
||||
{
|
||||
"id": "0bc02618-4414-4e90-8c44-808737611da7",
|
||||
"prevId": "fc58c59b-ac5c-406e-8fdb-b05de40aed17",
|
||||
"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
|
||||
},
|
||||
"imagePath": {
|
||||
"name": "imagePath",
|
||||
"type": "varchar(200)",
|
||||
"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()"
|
||||
},
|
||||
"serial_id": {
|
||||
"name": "serial_id",
|
||||
"type": "serial",
|
||||
"primaryKey": false,
|
||||
"notNull": true
|
||||
},
|
||||
"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(200)",
|
||||
"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": "jsonb",
|
||||
"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": "jsonb",
|
||||
"primaryKey": false,
|
||||
"notNull": false
|
||||
},
|
||||
"gender": {
|
||||
"name": "gender",
|
||||
"type": "gender",
|
||||
"primaryKey": false,
|
||||
"notNull": false
|
||||
},
|
||||
"customerType": {
|
||||
"name": "customerType",
|
||||
"type": "customerType",
|
||||
"primaryKey": false,
|
||||
"notNull": false
|
||||
},
|
||||
"created": {
|
||||
"name": "created",
|
||||
"type": "timestamp",
|
||||
"primaryKey": false,
|
||||
"notNull": false
|
||||
},
|
||||
"updated": {
|
||||
"name": "updated",
|
||||
"type": "timestamp",
|
||||
"primaryKey": false,
|
||||
"notNull": false
|
||||
}
|
||||
},
|
||||
"indexes": {},
|
||||
"foreignKeys": {},
|
||||
"compositePrimaryKeys": {},
|
||||
"uniqueConstraints": {}
|
||||
}
|
||||
},
|
||||
"enums": {
|
||||
"customerType": {
|
||||
"name": "customerType",
|
||||
"values": {
|
||||
"buyer": "buyer",
|
||||
"broker": "broker",
|
||||
"professional": "professional"
|
||||
}
|
||||
},
|
||||
"gender": {
|
||||
"name": "gender",
|
||||
"values": {
|
||||
"male": "male",
|
||||
"female": "female"
|
||||
}
|
||||
}
|
||||
},
|
||||
"schemas": {},
|
||||
"_meta": {
|
||||
"columns": {},
|
||||
"schemas": {},
|
||||
"tables": {}
|
||||
}
|
||||
}
|
||||
@@ -5,15 +5,8 @@
|
||||
{
|
||||
"idx": 0,
|
||||
"version": "5",
|
||||
"when": 1716495198537,
|
||||
"tag": "0000_burly_bruce_banner",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 1,
|
||||
"version": "5",
|
||||
"when": 1717085220861,
|
||||
"tag": "0001_wet_mephistopheles",
|
||||
"when": 1717933164279,
|
||||
"tag": "0000_known_havok",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
|
||||
75
bizmatch-server/src/drizzle/schema.js
Normal file
75
bizmatch-server/src/drizzle/schema.js
Normal file
@@ -0,0 +1,75 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.commercials = exports.businesses = exports.users = exports.PG_CONNECTION = void 0;
|
||||
var pg_core_1 = require("drizzle-orm/pg-core");
|
||||
exports.PG_CONNECTION = 'PG_CONNECTION';
|
||||
exports.users = (0, pg_core_1.pgTable)('users', {
|
||||
id: (0, pg_core_1.uuid)('id').primaryKey().defaultRandom(),
|
||||
firstname: (0, pg_core_1.varchar)('firstname', { length: 255 }).notNull(),
|
||||
lastname: (0, pg_core_1.varchar)('lastname', { length: 255 }).notNull(),
|
||||
email: (0, pg_core_1.varchar)('email', { length: 255 }).notNull(),
|
||||
phoneNumber: (0, pg_core_1.varchar)('phoneNumber', { length: 255 }),
|
||||
description: (0, pg_core_1.text)('description'),
|
||||
companyName: (0, pg_core_1.varchar)('companyName', { length: 255 }),
|
||||
companyOverview: (0, pg_core_1.text)('companyOverview'),
|
||||
companyWebsite: (0, pg_core_1.varchar)('companyWebsite', { length: 255 }),
|
||||
companyLocation: (0, pg_core_1.varchar)('companyLocation', { length: 255 }),
|
||||
offeredServices: (0, pg_core_1.text)('offeredServices'),
|
||||
areasServed: (0, pg_core_1.varchar)('areasServed', { length: 100 }).array(),
|
||||
hasProfile: (0, pg_core_1.boolean)('hasProfile'),
|
||||
hasCompanyLogo: (0, pg_core_1.boolean)('hasCompanyLogo'),
|
||||
licensedIn: (0, pg_core_1.varchar)('licensedIn', { length: 50 }).array(),
|
||||
});
|
||||
exports.businesses = (0, pg_core_1.pgTable)('businesses', {
|
||||
id: (0, pg_core_1.uuid)('id').primaryKey().defaultRandom(),
|
||||
userId: (0, pg_core_1.uuid)('userId').references(function () { return exports.users.id; }),
|
||||
type: (0, pg_core_1.varchar)('type', { length: 255 }),
|
||||
title: (0, pg_core_1.varchar)('title', { length: 255 }),
|
||||
description: (0, pg_core_1.text)('description'),
|
||||
city: (0, pg_core_1.varchar)('city', { length: 255 }),
|
||||
state: (0, pg_core_1.char)('state', { length: 2 }),
|
||||
price: (0, pg_core_1.numeric)('price', { precision: 10, scale: 2 }),
|
||||
favoritesForUser: (0, pg_core_1.varchar)('favoritesForUser', { length: 30 }).array(),
|
||||
draft: (0, pg_core_1.boolean)('draft'),
|
||||
listingsCategory: (0, pg_core_1.varchar)('listingsCategory', { length: 255 }),
|
||||
realEstateIncluded: (0, pg_core_1.boolean)('realEstateIncluded'),
|
||||
leasedLocation: (0, pg_core_1.boolean)('leasedLocation'),
|
||||
franchiseResale: (0, pg_core_1.boolean)('franchiseResale'),
|
||||
salesRevenue: (0, pg_core_1.numeric)('salesRevenue', { precision: 10, scale: 2 }),
|
||||
cashFlow: (0, pg_core_1.numeric)('cashFlow', { precision: 10, scale: 2 }),
|
||||
supportAndTraining: (0, pg_core_1.text)('supportAndTraining'),
|
||||
employees: (0, pg_core_1.integer)('employees'),
|
||||
established: (0, pg_core_1.integer)('established'),
|
||||
internalListingNumber: (0, pg_core_1.integer)('internalListingNumber'),
|
||||
reasonForSale: (0, pg_core_1.varchar)('reasonForSale', { length: 255 }),
|
||||
brokerLicencing: (0, pg_core_1.varchar)('brokerLicencing', { length: 255 }),
|
||||
internals: (0, pg_core_1.text)('internals'),
|
||||
created: (0, pg_core_1.timestamp)('created'),
|
||||
updated: (0, pg_core_1.timestamp)('updated'),
|
||||
visits: (0, pg_core_1.integer)('visits'),
|
||||
lastVisit: (0, pg_core_1.timestamp)('lastVisit'),
|
||||
});
|
||||
exports.commercials = (0, pg_core_1.pgTable)('commercials', {
|
||||
id: (0, pg_core_1.uuid)('id').primaryKey().defaultRandom(),
|
||||
userId: (0, pg_core_1.uuid)('userId').references(function () { return exports.users.id; }),
|
||||
type: (0, pg_core_1.varchar)('type', { length: 255 }),
|
||||
title: (0, pg_core_1.varchar)('title', { length: 255 }),
|
||||
description: (0, pg_core_1.text)('description'),
|
||||
city: (0, pg_core_1.varchar)('city', { length: 255 }),
|
||||
state: (0, pg_core_1.char)('state', { length: 2 }),
|
||||
price: (0, pg_core_1.numeric)('price', { precision: 10, scale: 2 }),
|
||||
favoritesForUser: (0, pg_core_1.varchar)('favoritesForUser', { length: 30 }).array(),
|
||||
hideImage: (0, pg_core_1.boolean)('hideImage'),
|
||||
draft: (0, pg_core_1.boolean)('draft'),
|
||||
zipCode: (0, pg_core_1.integer)('zipCode'),
|
||||
county: (0, pg_core_1.varchar)('county', { length: 255 }),
|
||||
email: (0, pg_core_1.varchar)('email', { length: 255 }),
|
||||
website: (0, pg_core_1.varchar)('website', { length: 255 }),
|
||||
phoneNumber: (0, pg_core_1.varchar)('phoneNumber', { length: 255 }),
|
||||
imageOrder: (0, pg_core_1.varchar)('imageOrder', { length: 30 }).array(),
|
||||
imagePath: (0, pg_core_1.varchar)('imagePath', { length: 30 }).array(),
|
||||
created: (0, pg_core_1.timestamp)('created'),
|
||||
updated: (0, pg_core_1.timestamp)('updated'),
|
||||
visits: (0, pg_core_1.integer)('visits'),
|
||||
lastVisit: (0, pg_core_1.timestamp)('lastVisit'),
|
||||
});
|
||||
@@ -3,7 +3,8 @@ import { AreasServed, LicensedIn } from 'src/models/db.model';
|
||||
|
||||
export const PG_CONNECTION = 'PG_CONNECTION';
|
||||
export const genderEnum = pgEnum('gender', ['male', 'female']);
|
||||
export const customerTypeEnum = pgEnum('customerType', ['buyer', 'broker', 'professional']);
|
||||
export const customerTypeEnum = pgEnum('customerType', ['buyer', 'professional']);
|
||||
export const customerSubTypeEnum = pgEnum('customerSubType', ['broker', 'cpa', 'attorney', 'titleCompany', 'surveyor', 'appraiser']);
|
||||
|
||||
export const users = pgTable('users', {
|
||||
id: uuid('id').primaryKey().defaultRandom(),
|
||||
@@ -23,6 +24,7 @@ export const users = pgTable('users', {
|
||||
licensedIn: jsonb('licensedIn').$type<LicensedIn[]>(),
|
||||
gender: genderEnum('gender'),
|
||||
customerType: customerTypeEnum('customerType'),
|
||||
customerSubType: customerSubTypeEnum('customerSubType'),
|
||||
created: timestamp('created'),
|
||||
updated: timestamp('updated'),
|
||||
});
|
||||
|
||||
21
bizmatch-server/src/drizzle/test.js
Normal file
21
bizmatch-server/src/drizzle/test.js
Normal file
@@ -0,0 +1,21 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// Angenommen, du hast eine Datei `databaseModels.js` mit deinen pgTable-Definitionen
|
||||
const { users } = require('./schema.js');
|
||||
|
||||
function generateTypeScriptInterface(tableDefinition, tableName) {
|
||||
let interfaceString = `export interface ${tableName} {\n`;
|
||||
for (const [column, definition] of Object.entries(tableDefinition)) {
|
||||
// Du musst die Definition parsen, um den korrekten Typ zu extrahieren
|
||||
const tsType = definition.type === 'uuid' ? 'string' :
|
||||
definition.type.startsWith('varchar') || definition.type === 'text' ? 'string' :
|
||||
definition.type === 'boolean' ? 'boolean' : 'any';
|
||||
interfaceString += ` ${column}${definition.optional ? '?' : ''}: ${tsType};\n`;
|
||||
}
|
||||
interfaceString += '}\n';
|
||||
return interfaceString;
|
||||
}
|
||||
|
||||
const userModelInterface = generateTypeScriptInterface(users.columns, 'User');
|
||||
fs.writeFileSync(path.join(__dirname, 'UserInterface.ts'), userModelInterface);
|
||||
Reference in New Issue
Block a user