added initial schema.prisma, populate brand and equipment

This commit is contained in:
2024-10-05 20:06:12 +00:00
parent 5a950f6851
commit 9001c47410
35 changed files with 360 additions and 24 deletions

View File

@ -10,11 +10,6 @@
"static/chunks/main-app.js",
"static/css/app/layout.css",
"static/chunks/app/layout.js"
],
"/_not-found/page": [
"static/chunks/webpack.js",
"static/chunks/main-app.js",
"static/chunks/app/_not-found/page.js"
]
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,3 @@
{
"/_not-found/page": "app/_not-found/page.js",
"/page": "app/page.js"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -125,7 +125,7 @@
/******/
/******/ /* webpack/runtime/getFullHash */
/******/ (() => {
/******/ __webpack_require__.h = () => ("7d69ca667ad26cb0")
/******/ __webpack_require__.h = () => ("f0dfd0de6fcf6560")
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */

View File

@ -35,7 +35,7 @@ eval(__webpack_require__.ts("var __dirname = \"/\";\n(()=>{\"use strict\";var e=
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"67f6fea2ca57\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6IjtBQUFBLCtEQUFlLGNBQWM7QUFDN0IsSUFBSSxJQUFVLElBQUksaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9hcHAvZ2xvYmFscy5jc3M/M2NhOSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcIjY3ZjZmZWEyY2E1N1wiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/globals.css\n"));
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"bad593a54998\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6IjtBQUFBLCtEQUFlLGNBQWM7QUFDN0IsSUFBSSxJQUFVLElBQUksaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9hcHAvZ2xvYmFscy5jc3M/M2NhOSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcImJhZDU5M2E1NDk5OFwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/globals.css\n"));
/***/ }),

View File

@ -180,7 +180,7 @@
/******/
/******/ /* webpack/runtime/getFullHash */
/******/ !function() {
/******/ __webpack_require__.h = function() { return "617478b79c4dd673"; }
/******/ __webpack_require__.h = function() { return "62aa9cdc7f16b846"; }
/******/ }();
/******/
/******/ /* webpack/runtime/global */

View File

@ -0,0 +1 @@
{"c":["app/layout","webpack"],"r":["app/_not-found/page"],"m":["(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2Fhome%2Fnextjs%2Fscrap%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!","(app-pages-browser)/./node_modules/next/dist/client/components/not-found-error.js"]}

View File

@ -0,0 +1,22 @@
"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("app/layout",{
/***/ "(app-pages-browser)/./src/app/globals.css":
/*!*****************************!*\
!*** ./src/app/globals.css ***!
\*****************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"ff6038e0c357\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6IjtBQUFBLCtEQUFlLGNBQWM7QUFDN0IsSUFBSSxJQUFVLElBQUksaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9hcHAvZ2xvYmFscy5jc3M/M2NhOSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcImZmNjAzOGUwYzM1N1wiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/globals.css\n"));
/***/ })
});

View File

@ -0,0 +1,22 @@
"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("app/layout",{
/***/ "(app-pages-browser)/./src/app/globals.css":
/*!*****************************!*\
!*** ./src/app/globals.css ***!
\*****************************/
/***/ (function(module, __webpack_exports__, __webpack_require__) {
eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"bad593a54998\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6IjtBQUFBLCtEQUFlLGNBQWM7QUFDN0IsSUFBSSxJQUFVLElBQUksaUJBQWlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL3NyYy9hcHAvZ2xvYmFscy5jc3M/M2NhOSJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcImJhZDU5M2E1NDk5OFwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/globals.css\n"));
/***/ })
});

View File

@ -0,0 +1 @@
{"c":["app/layout","webpack"],"r":[],"m":[]}

View File

@ -0,0 +1,18 @@
"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("webpack",{},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ /* webpack/runtime/getFullHash */
/******/ !function() {
/******/ __webpack_require__.h = function() { return "e0539e692a1e233c"; }
/******/ }();
/******/
/******/ }
);

View File

@ -0,0 +1,18 @@
"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
self["webpackHotUpdate_N_E"]("webpack",{},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ /* webpack/runtime/getFullHash */
/******/ !function() {
/******/ __webpack_require__.h = function() { return "62aa9cdc7f16b846"; }
/******/ }();
/******/
/******/ }
);

File diff suppressed because one or more lines are too long

View File

@ -23,5 +23,8 @@
"@types/react-dom": "^18",
"postcss": "^8",
"tailwindcss": "^3.4.1"
},
"prisma": {
"seed": "ts-node prisma/seed.ts"
}
}

View File

@ -10,5 +10,82 @@ generator client {
datasource db {
provider = "postgresql"
url = env("10.0.0.124:5432")
url = env("DATABASE_URL")
}
model Vehicle {
id Int @id @default(autoincrement())
brand String
model String
variant String?
year Int
kilometers Int
condition String
location String
latitude String
longitude String
gasType String
images String[]
description String
service String
inspectedAt DateTime?
updatedAt DateTime @updatedAt
createdAt DateTime @default(now())
auctions Auction[] // Relation to Auction
equipment Equipment[] @relation("VehicleEquipment")
}
model Equipment {
id Int @id @default(autoincrement())
name String
vehicles Vehicle[] @relation("VehicleEquipment")
}
model Auction {
id Int @id @default(autoincrement())
vehicleId Int
userId Int
askingPrice Float
description String?
vehicle Vehicle @relation(fields: [vehicleId], references: [id])
user User @relation(fields: [userId], references: [id])
updatedAt DateTime @updatedAt
createdAt DateTime @default(now())
bids Bid[] // Relation to Bid
}
model User {
id Int @id @default(autoincrement())
name String
company String?
address String
latitude String
longitude String
phone String
privatePhone String?
email String
cvr String?
updatedAt DateTime @updatedAt
createdAt DateTime @default(now())
auctions Auction[] // Relation to Auction
}
model Bid {
id Int @id @default(autoincrement())
auctionId Int
bid Float
auction Auction @relation(fields: [auctionId], references: [id])
updatedAt DateTime @updatedAt
createdAt DateTime @default(now())
}

188
prisma/seed.ts Normal file
View File

@ -0,0 +1,188 @@
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
const equipmentData = [
"aut.",
"aut.gear/tiptronic",
"ratgearskifte",
"alu.",
"15\" Alufælge",
"16\" Alufælge",
"17\" Alufælge",
"18\" Alufælge",
"19\" Alufælge",
"20\" Alufælge",
"21\" Alufælge",
"22\" Alufælge",
"vinterhjul",
"varme i rat",
"airc.",
"fuldaut. klima",
"2 zone klima",
"3 zone klima",
"4 zone klima",
"køl i handskerum",
"elektrisk",
"kabinevarmer",
"motorkabinevarmer",
"alarm",
"el-klapbare sidespejle",
"el-klapbare sidespejle m. varme",
"el-spejle m/varme",
"automatisk parkerings system",
"360° kamera",
"bakkamera",
"parkeringssensor (bag)",
"parkeringssensor (for)",
"adaptiv fartpilot",
"automatisk",
"start/stop",
"el betjent bagklap",
"dæktryksmåler",
"adaptiv undervogn",
"elektrisk parkeringsbremse",
"træthedsregistrering",
"skiltegenkendelse",
"CD",
"CD/radio",
"radio med CDboks",
"el komfortsæder",
"sportssæder",
"integrerede børnesæder",
"3 individuelle sæder i bag",
"lygtevasker",
"tågelygter",
"bi-xenon",
"xenonlys",
"automatisk lys",
"fjernlysassistent",
"kurvelys",
"LED kørelys",
"fuld LED forlygter",
"airbag",
"db. airbags",
"4 airbags",
"6 airbags",
"7 airbags",
"8 airbags",
"9 airbags",
"10 airbags",
"ABS",
"antispin",
"c.lås",
"fjernb. c.lås",
"nøglefri betjening",
"fartpilot",
"kørecomputer",
"infocenter",
"startspærre",
"varme i forrude",
"auto. nedbl. Bakspejl",
"udv. temp. måler",
"regnsensor",
"sædevarme",
"højdejust. forsæder",
"højdejust. førersæde",
"el indst. forsæder",
"el indst. førersæde m. memory",
"soltag",
"el-soltag",
"glastag",
"el-ruder",
"4x el-ruder",
"el-spejle",
"DAB radio",
"DAB+ radio",
"navigation",
"multifunktionsrat",
"håndfrit til mobil",
"bluetooth",
"musikstreaming via bluetooth",
"nightvision",
"digitalt cockpit",
"headup display",
"Android Auto",
"Apple CarPlay",
"Internet",
"trådløs",
"mobilopladning",
"SD kortlæser",
"USB tilslutning",
"AUX tilslutning",
"armlæn",
"isofix",
"bagagerumsdækken",
"kopholder",
"stofindtræk",
"dellæder",
"læderindtræk",
"kunstlæder",
"splitbagsæde",
"læderrat",
"ESP",
"servo",
"vognbaneassistent",
"blindvinkelsassistent",
"automatisk nødbremsesystem",
"sænket",
"tagræling",
"tonede ruder",
"mørktonede ruder i bag",
"1 ejer",
"ikke ryger",
"service ok",
"brugtbilsattest",
"træk",
"aftag. træk",
"svingbart træk (manuel)",
"svingbart træk (elektrisk)",
"diesel partikel filter",
"undervognsbehandlet"
];
const brandData = [
"Abarth", "AC", "Adler", "Aiways", "Alfa Romeo", "Alpina", "Aston Martin",
"Auburn", "Audi", "Austin", "Austin Healey", "Auto Union", "Bentley",
"BMW", "Buick", "BYD", "Cadillac", "CF Moto", "Chevrolet", "Chrysler",
"Citroën", "Corvette", "Cupra", "Dacia", "Daewoo", "Daihatsu", "Daimler",
"Dallara", "DeLorean", "DKW", "Dodge", "DS", "Ferrari", "Fiat", "Fisker",
"Ford", "GMC", "Honda", "Hongqi", "Hyundai", "JAC", "Jaguar", "Jeep",
"Kalmar", "KGM", "Kia", "Lada", "Lamborghini", "Lancia", "Land Rover",
"Lexus", "Lincoln", "Lloyd", "Lotus", "Lynk & Co", "MAN", "Maserati",
"Maxus", "Maybach", "Mazda", "McLaren", "Mercedes", "Mercury",
"Messerschmitt", "MG", "MINI", "Mitsubishi", "Morgan", "Morris", "NIO",
"Nissan", "Oldsmobile", "Opel", "Packard", "Peugeot", "Plymouth",
"Polestar", "Pontiac", "Porsche", "Renault", "Rolls-Royce", "Rover",
"Seat", "Seres", "Singer", "Skoda", "Smart", "SsangYong", "Studebaker",
"Subaru", "Suzuki", "Saab", "Tesla", "Toyota", "Triumph", "Vauxhall",
"Volvo", "Voyah", "VW", "Wolseley", "Xpeng", "Yugo"
];
async function main() {
for (const equipment of equipmentData) {
await prisma.equipment.create({
data: { name: equipment },
});
}
console.log('Equipment data seeded');
// Seed Brands
for (const brand of brandData) {
await prisma.brand.create({
data: { name: brand },
});
}
console.log('Brand data seeded');
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});

View File

@ -1,5 +1,5 @@
import { PiArrowDownThin } from "react-icons/pi";
import AuctionProcess from "./components/AuctionProcess";
import { FaArrowDownLong } from "react-icons/fa6";
export default function Home() {
return (
@ -15,7 +15,7 @@ export default function Home() {
<div className="text-center text-3xl mt-14 border-b border-b-black max-w-1920 max-h-1080 mx-auto pb-16">
<p className="text-bold">Hvordan fungere det?</p>
<p>klik her!</p>
<FaArrowDownLong className="text-7xl mx-auto mt-10" />
<PiArrowDownThin className="text-7xl mx-auto mt-10" />
</div>
<section>
<AuctionProcess />