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
54
55
56
57
58
59
60
61
62
63
64
|
import { pgTable, varchar, text, timestamp, char, decimal, serial, uniqueIndex } from "drizzle-orm/pg-core"
export const projects = pgTable("projects", {
id: serial("id").primaryKey(),
code: varchar("code", { length: 50 }).notNull(),
name: text("name").notNull(),
type: varchar("type", { length: 20 }).default("ship").notNull(),
createdAt: timestamp("created_at").defaultNow().notNull(),
updatedAt: timestamp("updated_at").defaultNow().notNull(),
})
export type Project = typeof projects.$inferSelect
export const biddingProjects = pgTable("bidding_projects", {
id: serial("id").primaryKey(),
pspid: char('pspid', { length: 24 }).notNull().unique(), // 견적프로젝트번호
projNm: varchar('proj_nm', { length: 90 }), // 견적프로젝트명
sector: char('sector', { length: 1 }), // 부문(S / M)
projMsrm: decimal('proj_msrm', { precision: 3, scale: 0 }), // 척수
kunnr: char('kunnr', { length: 10 }), // 선주코드
kunnrNm: varchar('kunnr_nm', { length: 30 }), // 선주명
cls1: char('cls_1', { length: 10 }), // 선급코드
cls1Nm: varchar('cls1_nm', { length: 30 }), // 선급명
ptype: char('ptype', { length: 3 }), // 선종코드
ptypeNm: varchar('ptype_nm', { length: 40 }), // 선종명
pmodelCd: char('pmodel_cd', { length: 10 }), // 선형코드
pmodelNm: varchar('pmodel_nm', { length: 40 }), // 선형명
pmodelSz: varchar('pmodel_sz', { length: 20 }), // 선형크기
pmodelUom: char('pmodel_uom', { length: 5 }), // 선형단위
txt04: char('txt04', { length: 4 }), // 견적상태코드
txt30: varchar('txt30', { length: 30 }), // 견적상태명
estmPm: varchar('estm_pm', { length: 30 }), // 견적대표PM 성명
createdAt: timestamp("created_at").defaultNow().notNull(),
updatedAt: timestamp("updated_at").defaultNow().notNull(),
});
export const projectSeries = pgTable('project_series', {
pspid: char('pspid', { length: 24 }).notNull().references(() => biddingProjects.pspid), // 견적프로젝트번호
sersNo: char('sers_no', { length: 3 }).notNull(), // 시리즈번호
scDt: char('sc_dt', {length: 8}), // Steel Cutting Date
klDt: char('kl_dt', {length: 8}), // Keel Laying Date
lcDt: char('lc_dt', {length: 8}), // Launching Date
dlDt: char('dl_dt', {length: 8}), // Delivery Date
dockNo: char('dock_no', { length: 3 }), // 도크코드
dockNm: varchar('dock_nm', { length: 40 }), // 도크명
projNo: char('proj_no', { length: 24 }), // SN공사번호(계약후)
post1: varchar('post1', { length: 40 }), // SN공사명(계약후)
}, (table) => {
return {
pk: uniqueIndex("project_sersNo_unique").on(
table.pspid,
table.sersNo
)
}
});
export type BiddingProjects = typeof biddingProjects.$inferSelect
export type ProjectSeries = typeof projectSeries.$inferSelect
// 새로 데이터 수신 시 구분을 위해 사용
export type NewBiddingProject = typeof biddingProjects.$inferInsert
export type NewProjectSeries = typeof projectSeries.$inferInsert
|