summaryrefslogtreecommitdiff
path: root/db/schema/users.ts
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-08-14 13:15:21 +0000
committerjoonhoekim <26rote@gmail.com>2025-08-14 13:15:21 +0000
commit49d236df3bd2bd976ebc424644f34f5affa1074f (patch)
tree7b0f60c399e724847894061fae74876aa1bf5c7e /db/schema/users.ts
parent969c25b56f6d29d7ffa4bc2ce04c5fb4e5846b34 (diff)
(김준회) 결재 테스트 모듈 수정, 환경병수 eVCP 운영 대응, SGIPS JWT TOKEN 수정, SHI-API 기반 유저 관리 추가, 유저목록 테이블 변경
Diffstat (limited to 'db/schema/users.ts')
-rw-r--r--db/schema/users.ts23
1 files changed, 22 insertions, 1 deletions
diff --git a/db/schema/users.ts b/db/schema/users.ts
index 0d727bb4..9977a442 100644
--- a/db/schema/users.ts
+++ b/db/schema/users.ts
@@ -59,6 +59,14 @@ export const users = pgTable("users", {
// emailVerifiedAt: timestamp("email_verified_at", { withTimezone: true }),
// registrationCompleted: boolean("registration_completed").default(false).notNull(),
+ // 김희은 프로 요구사항으로 추가
+ employeeNumber: varchar("employee_number", { length: 50 }),
+ knoxId: varchar("knox_id", { length: 50 }),
+ nonsapUserId: varchar("nonsap_user_id", { length: 50 }).unique(),
+ isAbsent: boolean("is_absent"), // 휴직여부 (SHI-API LOFF_GB (Y/N))
+ isDeletedOnNonSap: boolean("is_deleted_on_non_sap"), // 퇴직여부 (SHI-API DEL_YN (Y/N))
+ isRegularEmployee: boolean("is_regular_employee"), // 정직원여부 (SHI-API REGL_ORORD_GB (S/N))
+
}, (table) => {
return {
emailIdx: uniqueIndex("users_email_idx").on(table.email),
@@ -286,6 +294,17 @@ export const userView = pgView("user_view").as((qb) => {
user_image: sql<string>`${users.imageUrl}`.as("user_image"),
+ // 추가: 사번, 부서, 녹스ID
+ employee_number: sql<string | null>`${users.employeeNumber}`.as("employee_number"),
+ dept_name: sql<string | null>`${users.deptName}`.as("dept_name"),
+ knox_id: sql<string | null>`${users.knoxId}`.as("knox_id"),
+
+ // 추가: 계정 상태 플래그
+ is_locked: sql<boolean>`${users.isLocked}`.as("is_locked"),
+ is_absent: sql<boolean | null>`${users.isAbsent}`.as("is_absent"),
+ is_deleted_on_non_sap: sql<boolean | null>`${users.isDeletedOnNonSap}`.as("is_deleted_on_non_sap"),
+ is_regular_employee: sql<boolean | null>`${users.isRegularEmployee}`.as("is_regular_employee"),
+
// 4) companyId: number | null
company_id: sql<number | null>`${vendors.id}`.as("company_id"),
@@ -297,8 +316,10 @@ export const userView = pgView("user_view").as((qb) => {
roles: sql<string[]>`
array_agg(${roles.name})
`.as("roles"),
- // 7) createdAt: Date
+ // 7) created/updated/deactivated dates
created_at: sql<Date>`${users.createdAt}`.as("created_at"),
+ updated_at: sql<Date>`${users.updatedAt}`.as("updated_at"),
+ deactivated_at: sql<Date | null>`${users.deactivatedAt}`.as("deactivated_at"),
})
.from(users)
.leftJoin(vendors, eq(users.companyId, vendors.id))