added card to show all wines in db
All checks were successful
Vercel Production Deployment / Deploy-Production (push) Successful in 1m24s
All checks were successful
Vercel Production Deployment / Deploy-Production (push) Successful in 1m24s
This commit is contained in:
parent
2f158c49d6
commit
e70ff89833
@ -1,7 +1,13 @@
|
|||||||
|
import { db } from "~/server/db";
|
||||||
|
|
||||||
export default async function AllCountries() {
|
export default async function AllCountries() {
|
||||||
|
const countries = await db.query.countries.findMany();
|
||||||
return (
|
return (
|
||||||
<div className="pt-4">
|
<div className="pt-4">
|
||||||
<h1 className="text-2xl">All Countries:</h1>
|
<h1 className="text-2xl">All Countries:</h1>
|
||||||
|
{countries.map((country) => (
|
||||||
|
<p key={country.id}>{country.name}</p>
|
||||||
|
))}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
import { db } from "~/server/db";
|
import { db } from "~/server/db";
|
||||||
import WineName from "./WineName";
|
import WineName from "./WineName";
|
||||||
|
|
||||||
const wines = await db.query.wines.findMany();
|
|
||||||
export default async function WineList() {
|
export default async function WineList() {
|
||||||
|
const wines = await db.query.wines.findMany();
|
||||||
return (
|
return (
|
||||||
<div className="pt-4">
|
<div className="pt-4">
|
||||||
<h1 className="text-2xl">All wines:</h1>
|
<h1 className="text-2xl">All wines:</h1>
|
||||||
|
@ -6,7 +6,7 @@ import {
|
|||||||
pgTableCreator,
|
pgTableCreator,
|
||||||
text,
|
text,
|
||||||
timestamp,
|
timestamp,
|
||||||
uuid
|
uuid,
|
||||||
} from "drizzle-orm/pg-core";
|
} from "drizzle-orm/pg-core";
|
||||||
import { relations } from "drizzle-orm";
|
import { relations } from "drizzle-orm";
|
||||||
|
|
||||||
@ -17,9 +17,9 @@ export const producers = createTable(
|
|||||||
"producer",
|
"producer",
|
||||||
{
|
{
|
||||||
id: uuid("id").primaryKey().defaultRandom(),
|
id: uuid("id").primaryKey().defaultRandom(),
|
||||||
name: text("name").notNull(),
|
name: text("name").notNull().unique(),
|
||||||
description: text("description"),
|
description: text("description"),
|
||||||
imageUrl: text('imageUrl'),
|
imageUrl: text("imageUrl"),
|
||||||
countryId: uuid("countryId").notNull(),
|
countryId: uuid("countryId").notNull(),
|
||||||
createdAt: timestamp("createdAt").defaultNow().notNull(),
|
createdAt: timestamp("createdAt").defaultNow().notNull(),
|
||||||
updatedAt: timestamp("updatedAt").defaultNow(),
|
updatedAt: timestamp("updatedAt").defaultNow(),
|
||||||
@ -37,26 +37,29 @@ export const producersRelations = relations(producers, ({ many }) => ({
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
// Wines schema
|
// Wines schema
|
||||||
export const typeEnum = pgEnum('type', ['sparkling', 'white', 'red', 'sweet', 'other']);
|
export const typeEnum = pgEnum("type", [
|
||||||
|
"sparkling",
|
||||||
|
"white",
|
||||||
|
"red",
|
||||||
|
"sweet",
|
||||||
|
"other",
|
||||||
|
]);
|
||||||
|
|
||||||
export const wines = createTable(
|
export const wines = createTable("wine", {
|
||||||
"wine",
|
id: uuid("id").primaryKey().defaultRandom(),
|
||||||
{
|
name: text("name").notNull(),
|
||||||
id: uuid("id").primaryKey().defaultRandom(),
|
type: typeEnum("type").notNull(),
|
||||||
name: text("name").notNull(),
|
description: text("description"),
|
||||||
type: typeEnum("type").notNull(),
|
imageUrl: text("imageUrl"),
|
||||||
description: text("description"),
|
producerId: uuid("producerId").notNull(),
|
||||||
imageUrl: text('imageUrl'),
|
subRegionId: uuid("subRegionId"),
|
||||||
producerId: uuid("producerId").notNull(),
|
regionId: uuid("regionId").notNull(),
|
||||||
subRegionId: uuid("subRegionId"),
|
countryId: uuid("countryId").notNull(),
|
||||||
regionId: uuid("regionId").notNull(),
|
price: integer("price").notNull(),
|
||||||
countryId: uuid("countryId").notNull(),
|
inStock: boolean("inStock").notNull().default(false),
|
||||||
price: integer("price").notNull(),
|
createdAt: timestamp("createdAt").defaultNow().notNull(),
|
||||||
inStock: boolean("inStock").notNull().default(false),
|
updatedAt: timestamp("updatedAt").defaultNow(),
|
||||||
createdAt: timestamp("createdAt").defaultNow().notNull(),
|
});
|
||||||
updatedAt: timestamp("updatedAt").defaultNow(),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
// many-to-one relationship wine -> producer
|
// many-to-one relationship wine -> producer
|
||||||
export const winesRelations = relations(wines, ({ one }) => ({
|
export const winesRelations = relations(wines, ({ one }) => ({
|
||||||
@ -75,53 +78,44 @@ export const winesRelations = relations(wines, ({ one }) => ({
|
|||||||
country: one(countries, {
|
country: one(countries, {
|
||||||
fields: [wines.countryId],
|
fields: [wines.countryId],
|
||||||
references: [countries.id],
|
references: [countries.id],
|
||||||
})
|
}),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
export const subRegions = createTable(
|
export const subRegions = createTable("subRegion", {
|
||||||
"subRegion",
|
id: uuid("id").primaryKey().notNull().defaultRandom(),
|
||||||
{
|
name: text("name").notNull().unique(),
|
||||||
id: uuid("id").primaryKey().notNull().defaultRandom(),
|
regionId: uuid("regionId").notNull(),
|
||||||
name: text("name").notNull().unique(),
|
});
|
||||||
regionId: uuid("regionId").notNull(),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
export const subRegionsRelations = relations(subRegions, ({ many, one }) => ({
|
export const subRegionsRelations = relations(subRegions, ({ many, one }) => ({
|
||||||
wines: many(wines),
|
wines: many(wines),
|
||||||
region: one(regions, {
|
region: one(regions, {
|
||||||
fields: [subRegions.regionId],
|
fields: [subRegions.regionId],
|
||||||
references: [regions.id]
|
references: [regions.id],
|
||||||
})
|
}),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
export const regions = createTable(
|
export const regions = createTable("region", {
|
||||||
"region",
|
id: uuid("id").primaryKey().notNull().defaultRandom(),
|
||||||
{
|
name: text("name").notNull().unique(),
|
||||||
id: uuid("id").primaryKey().notNull().defaultRandom(),
|
countryId: uuid("countryId").notNull(),
|
||||||
name: text("name").notNull().unique(),
|
});
|
||||||
countryId: uuid("countryId").notNull(),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
export const regionsRelations = relations(regions, ({ many, one }) => ({
|
export const regionsRelations = relations(regions, ({ many, one }) => ({
|
||||||
wines: many(wines),
|
wines: many(wines),
|
||||||
subRegions: many(subRegions),
|
subRegions: many(subRegions),
|
||||||
country: one(countries, {
|
country: one(countries, {
|
||||||
fields: [regions.countryId],
|
fields: [regions.countryId],
|
||||||
references: [countries.id]
|
references: [countries.id],
|
||||||
})
|
}),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
export const countries = createTable(
|
export const countries = createTable("country", {
|
||||||
"country",
|
id: uuid("id").primaryKey().notNull().defaultRandom(),
|
||||||
{
|
name: text("name").notNull().unique(),
|
||||||
id: uuid("id").primaryKey().notNull().defaultRandom(),
|
});
|
||||||
name: text("name").notNull(),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
export const countriesRelations = relations(countries, ({ many }) => ({
|
export const countriesRelations = relations(countries, ({ many }) => ({
|
||||||
wines: many(wines),
|
wines: many(wines),
|
||||||
regions: many(regions)
|
regions: many(regions),
|
||||||
}));
|
}));
|
||||||
|
Loading…
Reference in New Issue
Block a user