1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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;
|