summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
Diffstat (limited to 'db')
-rw-r--r--db/schema/knox/employee.ts53
1 files changed, 53 insertions, 0 deletions
diff --git a/db/schema/knox/employee.ts b/db/schema/knox/employee.ts
new file mode 100644
index 00000000..8c228130
--- /dev/null
+++ b/db/schema/knox/employee.ts
@@ -0,0 +1,53 @@
+import { pgSchema, varchar, timestamp, jsonb, text, index } from "drizzle-orm/pg-core";
+
+export const knoxSchema = pgSchema("knox");
+
+export const employee = knoxSchema.table("employee", {
+ epId: varchar("ep_id", { length: 25 }).primaryKey(),
+ employeeNumber: varchar("employee_number", { length: 20 }),
+ userId: varchar("user_id", { length: 50 }),
+ fullName: varchar("full_name", { length: 100 }),
+ givenName: varchar("given_name", { length: 100 }),
+ sirName: varchar("sir_name", { length: 50 }),
+ companyCode: varchar("company_code", { length: 10 }),
+ companyName: varchar("company_name", { length: 100 }),
+ departmentCode: varchar("department_code", { length: 50 }),
+ departmentName: varchar("department_name", { length: 255 }),
+ titleCode: varchar("title_code", { length: 20 }),
+ titleName: varchar("title_name", { length: 100 }),
+ emailAddress: varchar("email_address", { length: 255 }),
+ mobile: varchar("mobile", { length: 50 }),
+ employeeStatus: varchar("employee_status", { length: 2 }),
+ employeeType: varchar("employee_type", { length: 2 }),
+ accountStatus: varchar("account_status", { length: 2 }),
+ securityLevel: varchar("security_level", { length: 2 }),
+ preferredLanguage: varchar("preferred_language", { length: 5 }),
+ description: text("description"),
+ raw: jsonb("raw").notNull(),
+ createdAt: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(),
+ updatedAt: timestamp("updated_at", { withTimezone: true }).defaultNow().notNull(),
+ enCompanyName: varchar("en_company_name", { length: 100 }),
+ enDepartmentName: varchar("en_department_name", { length: 255 }),
+ enDiscription: varchar("en_discription", { length: 255 }),
+ enFullName: varchar("en_full_name", { length: 100 }),
+ enGivenName: varchar("en_given_name", { length: 100 }),
+ enGradeName: varchar("en_grade_name", { length: 100 }),
+ enSirName: varchar("en_sir_name", { length: 50 }),
+ enTitleName: varchar("en_title_name", { length: 100 }),
+ gradeName: varchar("grade_name", { length: 100 }),
+ gradeTitleIndiCode: varchar("grade_title_indi_code", { length: 2 }),
+ jobName: varchar("job_name", { length: 100 }),
+ realNameYn: varchar("real_name_yn", { length: 2 }),
+ serverLocation: varchar("server_location", { length: 2 }),
+ titleSortOrder: varchar("title_sort_order", { length: 10 }),
+}, (table) => {
+ return {
+ companyDepartmentIdx: index("knox_employee_company_department_idx").on(table.companyCode, table.departmentCode),
+ employeeNumberIdx: index("knox_employee_number_idx").on(table.employeeNumber),
+ userIdIdx: index("knox_employee_user_id_idx").on(table.userId),
+ emailIdx: index("knox_employee_email_idx").on(table.emailAddress),
+ };
+});
+
+export type KnoxEmployee = typeof employee.$inferSelect;
+export type NewKnoxEmployee = typeof employee.$inferInsert; \ No newline at end of file