refactor(dbscheme): refactoring from opening and saving
This commit is contained in:
@@ -1,6 +1,14 @@
|
|||||||
import {text, pgTable, timestamp, uuid, uniqueIndex, jsonb, integer} from "drizzle-orm/pg-core";
|
import {
|
||||||
import {createInsertSchema, createSelectSchema} from "drizzle-zod";
|
text,
|
||||||
import {z} from "zod";
|
pgTable,
|
||||||
|
timestamp,
|
||||||
|
uuid,
|
||||||
|
uniqueIndex,
|
||||||
|
jsonb,
|
||||||
|
integer,
|
||||||
|
} from "drizzle-orm/pg-core";
|
||||||
|
import { createInsertSchema, createSelectSchema } from "drizzle-zod";
|
||||||
|
import { z } from "zod";
|
||||||
|
|
||||||
export const rfidTags = pgTable(
|
export const rfidTags = pgTable(
|
||||||
"rfidTags",
|
"rfidTags",
|
||||||
@@ -23,8 +31,8 @@ export const rfidTags = pgTable(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Schema for inserting a user - can be used to validate API requests
|
// Schema for inserting a user - can be used to validate API requests
|
||||||
export const insertRolesSchema = createInsertSchema(rfidTags, {
|
// export const insertRolesSchema = createInsertSchema(rfidTags, {
|
||||||
tagHex: z.string().min(3, {message: "Tag Should have more than 3 characters"}),
|
// tagHex: z.string().min(3, {message: "Tag Should have more than 3 characters"}),
|
||||||
});
|
// });
|
||||||
// Schema for selecting a Expenses - can be used to validate API responses
|
// Schema for selecting a Expenses - can be used to validate API responses
|
||||||
export const selectRolesSchema = createSelectSchema(rfidTags);
|
export const selectRolesSchema = createSelectSchema(rfidTags);
|
||||||
|
|||||||
@@ -1,9 +1,18 @@
|
|||||||
import {text, pgTable, numeric, index, timestamp, boolean, uuid, uniqueIndex} from "drizzle-orm/pg-core";
|
import {
|
||||||
import {createInsertSchema, createSelectSchema} from "drizzle-zod";
|
text,
|
||||||
import {z} from "zod";
|
pgTable,
|
||||||
import {users} from "./users.js";
|
numeric,
|
||||||
import {roles} from "./roles.js";
|
index,
|
||||||
import {modules} from "./modules.js";
|
timestamp,
|
||||||
|
boolean,
|
||||||
|
uuid,
|
||||||
|
uniqueIndex,
|
||||||
|
} from "drizzle-orm/pg-core";
|
||||||
|
import { createInsertSchema, createSelectSchema } from "drizzle-zod";
|
||||||
|
import { z } from "zod";
|
||||||
|
import { users } from "./users.js";
|
||||||
|
import { roles } from "./roles.js";
|
||||||
|
import { modules } from "./modules.js";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
we will add the user
|
we will add the user
|
||||||
@@ -17,14 +26,14 @@ export const userRoles = pgTable(
|
|||||||
"userRoles",
|
"userRoles",
|
||||||
{
|
{
|
||||||
user_id: uuid("user_id")
|
user_id: uuid("user_id")
|
||||||
.notNull()
|
.notNull()
|
||||||
.references(() => users.user_id),
|
.references(() => users.user_id),
|
||||||
role_id: uuid("role_id")
|
role_id: uuid("role_id")
|
||||||
.notNull()
|
.notNull()
|
||||||
.references(() => roles.role_id),
|
.references(() => roles.role_id),
|
||||||
module_id: uuid("module_id")
|
module_id: uuid("module_id")
|
||||||
.notNull()
|
.notNull()
|
||||||
.references(() => modules.module_id),
|
.references(() => modules.module_id),
|
||||||
role: text("role").notNull(), // "view", "technician", "supervisor","manager", "admin", "systemAdmin"
|
role: text("role").notNull(), // "view", "technician", "supervisor","manager", "admin", "systemAdmin"
|
||||||
add_User: text("add_User").default("LST_System").notNull(),
|
add_User: text("add_User").default("LST_System").notNull(),
|
||||||
add_Date: timestamp("add_Date").defaultNow(),
|
add_Date: timestamp("add_Date").defaultNow(),
|
||||||
@@ -33,13 +42,18 @@ export const userRoles = pgTable(
|
|||||||
},
|
},
|
||||||
(table) => {
|
(table) => {
|
||||||
// ensures only one user gets permissions to one role
|
// ensures only one user gets permissions to one role
|
||||||
return [uniqueIndex("user_module_unique").on(table.user_id, table.module_id)];
|
return [
|
||||||
|
uniqueIndex("user_module_unique").on(
|
||||||
|
table.user_id,
|
||||||
|
table.module_id
|
||||||
|
),
|
||||||
|
];
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
// Schema for inserting a user - can be used to validate API requests
|
// Schema for inserting a user - can be used to validate API requests
|
||||||
export const insertUserRolesSchema = createInsertSchema(userRoles, {
|
// export const insertUserRolesSchema = createInsertSchema(userRoles, {
|
||||||
role: z.string().min(3, {message: "Role must be at least 3 characters"}),
|
// role: z.string().min(3, {message: "Role must be at least 3 characters"}),
|
||||||
});
|
// });
|
||||||
// Schema for selecting a Expenses - can be used to validate API responses
|
// Schema for selecting a Expenses - can be used to validate API responses
|
||||||
export const selectUserRolesSchema = createSelectSchema(userRoles);
|
export const selectUserRolesSchema = createSelectSchema(userRoles);
|
||||||
|
|||||||
@@ -1,6 +1,15 @@
|
|||||||
import {text, pgTable, numeric, index, timestamp, boolean, uuid, uniqueIndex} from "drizzle-orm/pg-core";
|
import {
|
||||||
import {createInsertSchema, createSelectSchema} from "drizzle-zod";
|
text,
|
||||||
import {z} from "zod";
|
pgTable,
|
||||||
|
numeric,
|
||||||
|
index,
|
||||||
|
timestamp,
|
||||||
|
boolean,
|
||||||
|
uuid,
|
||||||
|
uniqueIndex,
|
||||||
|
} from "drizzle-orm/pg-core";
|
||||||
|
import { createInsertSchema, createSelectSchema } from "drizzle-zod";
|
||||||
|
import { z } from "zod";
|
||||||
|
|
||||||
export const users = pgTable(
|
export const users = pgTable(
|
||||||
"users",
|
"users",
|
||||||
@@ -27,10 +36,10 @@ export const users = pgTable(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Schema for inserting a user - can be used to validate API requests
|
// Schema for inserting a user - can be used to validate API requests
|
||||||
export const insertUsersSchema = createInsertSchema(users, {
|
// export const insertUsersSchema = createInsertSchema(users, {
|
||||||
username: z.string().min(3, {message: "Username must be at least 3 characters"}),
|
// username: z.string().min(3, {message: "Username must be at least 3 characters"}),
|
||||||
email: z.string().email({message: "Invalid email"}),
|
// email: z.string().email({message: "Invalid email"}),
|
||||||
password: z.string().min(8, {message: "Password must be at least 8 characters"}),
|
// password: z.string().min(8, {message: "Password must be at least 8 characters"}),
|
||||||
});
|
// });
|
||||||
// Schema for selecting a Expenses - can be used to validate API responses
|
// Schema for selecting a Expenses - can be used to validate API responses
|
||||||
export const selectUsersSchema = createSelectSchema(users);
|
export const selectUsersSchema = createSelectSchema(users);
|
||||||
|
|||||||
Reference in New Issue
Block a user