어떤 화면이 어떤 DB를 쓰는지
Prisma 코드에 정의된 80개 모델을 모두 펼쳐보고, user 화면별로 실제 API가 읽고 쓰는 핵심 모델을 바로 찾아갈 수 있습니다.
중요: 80개는 현재 코드에 정의된 모델 수입니다. 운영 PostgreSQL에 실제 적용된 테이블 수나 각 테이블의 데이터 건수는 조회하지 않았습니다.
화면 → API → DB 영역
화면별 DB 사용
읽기·쓰기는 해당 user 화면과 연결된 API 경로 기준입니다. admin 전용 기능은 전체 모델 목록에서 별도로 확인합니다.
가입 · 로그인 · PASS · 자격인증
/signup · /signin · /auth/[role] · /mypage/account
계정을 만들고 약관·PASS 신원·자격심사를 연결한 뒤 역할과 접근권한을 결정합니다.
| Prisma 모델 | 작업 | 화면에서 쓰는 이유 |
|---|---|---|
Member | 읽기·생성·수정 | 이메일·카카오 계정, PASS 확정 신원과 기본 프로필 |
Agreement | 읽기 | 현재 노출할 약관 원본 |
AgreementHistory | 읽기·생성 | 회원별 약관 동의 이력 |
MemberRole | 읽기·생성·삭제 | USER·LAWYER·LAWSCHOOL 등 서버 권한 |
Verification | 읽기·생성·수정 | 변호사·로스쿨 자격 신청과 심사 상태 |
VerificationFile | 읽기·생성·삭제 | 자격 심사 증빙 파일 |
MemberFile | 읽기·생성·삭제 | 회원 소유 프로필·첨부 파일 |
AnalyticsEvent | 생성 | 이메일·카카오 로그인 같은 인증 이벤트 |
PASS 신원은 서버가 검증한 tx 결과로만 확정합니다.
운영 DB의 실제 가입자 수와 필드 채움률은 조회하지 않았습니다.
확인한 코드 4개
apps/server/src/auth/member/member.service.tsapps/server/src/auth/agreement/agreement.service.tsapps/server/src/auth/verification/verification.service.tsapps/server/src/auth/kakao/kakao-oauth.service.ts홈 · 통합검색
/ · /search
홈 카드와 채용·스펙업·커뮤니티 검색 결과를 읽고 상세 화면으로 연결합니다.
| Prisma 모델 | 작업 | 화면에서 쓰는 이유 |
|---|---|---|
WebCard | 읽기 | 홈에 노출되는 운영 카드 |
JobDescription | 읽기 | 채용 검색의 공통 제목·기간·상태 |
LawyerJobDescription | 읽기 | 변호사 채용 조건과 지원 방식 |
SpecUp | 읽기 | 스펙업 검색 결과 |
Post | 읽기 | 커뮤니티 공통 게시글 정보 |
LawyerPost | 읽기 | 직역 게시판 분류와 확장정보 |
검색 화면은 여러 도메인을 한 번에 읽지만 하나의 통합검색 전용 테이블을 사용하지 않습니다.
확인한 코드 5개
apps/web/src/app/(main)/page.tsxapps/server/src/web-card/web-card.service.tsapps/server/src/lawyer/job-description/lawyer-jd.service.tsapps/server/src/lawyer/spec-up/spec-up.service.tsapps/server/src/lawyer/post/lawyer-post.service.ts채용정보 · 상세 · 지원
/jobdescription/lawyer · 상세 · /mypage/applications
공고·회사·지역·분야를 읽고, 내부지원이면 이력서와 첨부를 묶어 지원서를 저장합니다.
| Prisma 모델 | 작업 | 화면에서 쓰는 이유 |
|---|---|---|
JobDescription | 읽기 | 공고 공통 정보·공개상태·채용기간 |
LawyerJobDescription | 읽기 | 직역 공고의 지원방식·업무조건 |
LawyerJdPracticeArea | 읽기 | 공고의 업무 분야 |
LawyerJdSpecialization | 읽기 | 공고의 전문 분야 |
Company | 읽기 | 채용 회사 기본정보 |
CompanyAddress | 읽기 | 회사 주소 |
JobAddress | 읽기 | 공고 근무지 |
JobDescriptionFile | 읽기 | 공고 첨부 파일 |
JobDescriptionActivity | 생성·수정 | 공고 조회·행동 기록 |
CompanyMember | 읽기 | 기업 계정의 회사 소속과 열람 게이트 |
JobDescriptionScrap | 읽기·생성·삭제 | 회원의 공고 스크랩 |
JobApplication | 읽기·생성·수정 | 지원서·진행상태·이력서 스냅샷 |
JobApplicationFile | 읽기·생성·삭제 | 지원서 제출 파일 |
Resume | 읽기 | 내부지원에 사용할 이력서 본문 |
LawyerResume | 읽기 | 변호사 이력서 확장정보 |
ResumeBundle | 읽기·생성 | 합본 PDF 제출 사본 |
Verification | 읽기 | 지원 가능 자격 확인 |
외부 링크·이메일 지원은 내부 JobApplication이 생성되지 않을 수 있습니다.
공고 접근은 역할과 회사 소유권·공개상태를 서버에서 별도로 검사합니다.
확인한 코드 4개
apps/server/src/lawyer/job-description/lawyer-jd.service.tsapps/server/src/lawyer/job-application/job-application.service.tsapps/server/src/lawyer/scrap/jd-scrap.service.tsapps/server/src/lawyer/resume-bundle/resume-bundle.service.ts스펙업
/specup · /specup/[id] · /mypage/scrap/specup
교육·행사·공모 정보와 장소·첨부를 읽고 회원별 스크랩을 저장합니다.
| Prisma 모델 | 작업 | 화면에서 쓰는 이유 |
|---|---|---|
SpecUp | 읽기 | 스펙업 제목·기간·카테고리·외부 신청정보 |
SpecUpAddress | 읽기 | 행사·교육 장소 |
SpecUpFile | 읽기 | 썸네일·첨부 파일 |
SpecUpScrap | 읽기·생성·삭제 | 회원별 스펙업 스크랩 |
외부 신청은 LegalCrew DB에 신청서가 쌓이지 않고 외부 URL 또는 이메일로 이동합니다.
확인한 코드 2개
apps/server/src/lawyer/spec-up/spec-up.service.tsapps/server/src/lawyer/spec-up/spec-up-scrap.service.ts커뮤니티
/community · 게시판 · /community/[id] · /community/myPost
게시글과 댓글을 읽고 자격에 따라 작성·수정·좋아요·신고·첨부 작업을 수행합니다.
| Prisma 모델 | 작업 | 화면에서 쓰는 이유 |
|---|---|---|
Post | 읽기·생성·수정·삭제 | 게시글 공통 제목·본문·작성자 |
LawyerPost | 읽기·생성·수정 | 직역 카테고리·노출 확장정보 |
Comment | 읽기·생성·수정·삭제 | 댓글 공통 본문·작성자 |
LawyerComment | 읽기·생성 | 직역 댓글 확장정보 |
PostFile | 읽기·생성·삭제 | 게시글 첨부 파일 |
LawyerPostLike | 읽기·생성·삭제 | 게시글 좋아요 |
LawyerCommentLike | 읽기·생성·삭제 | 댓글 좋아요 |
Report | 생성 | 게시글·댓글 신고 |
Member | 읽기 | 작성자 표시와 역할 판정 |
Post·Comment가 공통 원본이고 LawyerPost·LawyerComment가 직역 기능을 확장합니다.
확인한 코드 4개
apps/server/src/lawyer/post/lawyer-post.service.tsapps/server/src/lawyer/comment/lawyer-comment.service.tsapps/server/src/community/post/post-file.service.tsapps/server/src/community/report/report.service.tsPDF · 카드 도구
/pdf/tools · 별도 PDF 앱
대부분 브라우저와 별도 PDF 앱에서 처리하며, 서버에는 사용 이벤트만 제한적으로 남깁니다.
| Prisma 모델 | 작업 | 화면에서 쓰는 이유 |
|---|---|---|
AnalyticsEvent | 생성 | PDF 도구 사용 이벤트 |
Resume | 읽기 | 이력서 PDF 출력 시 원본 이력서 |
ResumeBundle | 읽기·생성·삭제 | 여러 파일을 합친 제출용 PDF 보관함 |
Prisma schema에는 PDFUsage라는 전용 모델이 없습니다.
이력서 PDF를 고르면 M06의 Resume·ResumeBundle 데이터가 함께 사용됩니다.
확인한 코드 2개
apps/server/src/pdf-usage/pdf-usage.service.tsapps/server/src/lawyer/resume-bundle/resume-bundle.service.ts내 커리어 · 이력서 · 마이페이지
/resume · /resume/[id] · /mypage/*
프로필과 이력서 전체 구성요소를 저장하고 지원현황·스크랩·알림·계정설정을 함께 읽습니다.
| Prisma 모델 | 작업 | 화면에서 쓰는 이유 |
|---|---|---|
Member | 읽기·수정 | 계정·기본 프로필 |
Lawyer | 읽기·수정 | 변호사 프로필 |
MemberCareer | 읽기·생성·수정·삭제 | 회원 경력 요약 |
MemberFile | 읽기·생성·삭제 | 프로필·회원 소유 파일 |
Resume | 읽기·생성·수정·삭제 | 이력서 본문·공개설정·대표 이력서 |
LawyerResume | 읽기·생성·수정 | 변호사 이력서 확장정보 |
ResumeEducation | 읽기·생성·수정·삭제 | 학력 |
ResumeCareer | 읽기·생성·수정·삭제 | 경력 |
ResumeActivity | 읽기·생성·수정·삭제 | 대외활동·수상 등 |
ResumeCertification | 읽기·생성·수정·삭제 | 자격증 |
ResumeLanguage | 읽기·생성·수정·삭제 | 언어능력 |
ResumeQualification | 읽기·생성·수정·삭제 | 법조 자격 |
ResumePracticeArea | 읽기·생성·삭제 | 업무 분야 |
ResumeLink | 읽기·생성·수정·삭제 | 포트폴리오·외부 링크 |
ResumeFile | 읽기·생성·삭제 | 이력서 첨부·프로필 이미지 |
ResumeBarExam | 읽기·생성·수정·삭제 | 변호사시험 정보 |
ResumeJudicialTraining | 읽기·생성·수정·삭제 | 사법연수원 정보 |
ResumeBundle | 읽기·생성·삭제 | 합본 PDF 보관함 |
JobApplication | 읽기·수정 | 지원현황과 취소 |
JobApplicationFile | 읽기 | 제출한 지원 파일 |
JobDescriptionScrap | 읽기·삭제 | 공고 스크랩 목록 |
SpecUpScrap | 읽기·삭제 | 스펙업 스크랩 목록 |
Notification | 읽기·수정 | 알림 목록과 읽음 상태 |
KakaoNotificationPreference | 읽기·수정 | 카카오 알림 수신 설정 |
Verification | 읽기 | 현재 자격 인증 상태 |
이력서 입력폼·미리보기·PDF는 같은 Resume 계열 데이터를 사용합니다.
아래 표는 화면에서 직접 또는 API 응답 관계로 사용하는 핵심 모델입니다.
확인한 코드 4개
apps/server/src/lawyer/resume/lawyer-resume.service.tsapps/server/src/lawyer/resume-bundle/resume-bundle.service.tsapps/server/src/auth/member/member-file.service.tsapps/server/src/community/notification/notification.service.ts80개 모델 전체 목록
모델을 펼치면 실제 DB 테이블·컬럼명, Prisma 타입, 키·관계·기본값을 볼 수 있습니다.
회원 · 인증 · 약관
계정, 역할, PASS·자격 심사, 약관, 회원 파일과 카카오 메시지 설정을 보관합니다.
회사 · 채용 · 이력서 공통
회사와 공고의 공통 정보, 이력서 본문과 학력·경력·자격·첨부를 보관합니다.
커뮤니티 공통
게시글·댓글·첨부의 공통 원본을 보관합니다.
변호사·로스쿨 user 업무
직역 프로필, 공고 확장정보, 지원·스크랩, 커뮤니티 참여, 스펙업을 보관합니다.
콘텐츠 자동화
외부 소스 수집, 항목 처리 상태와 스펙업·커뮤니티 게시 이력을 보관합니다.
행동 분석 · 신원 연결
일별 활동, 익명·회원 행동 이벤트와 익명 신원의 회원 연결을 보관합니다.
관리 · 단체메일 · 웹 카드
관리자 활동, 이메일 캠페인·전송·억제·감사 기록과 홈 웹 카드를 보관합니다.
Agreementagreement
화면 연결: A01
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
type | type | AgreementType? | — |
version | version | Int | — |
histories | histories | AgreementHistory[] | — |
테이블 제약 @@map("agreement")
Membermember
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
adminResumeStatus | admin_resume_status | AdminResumeStatus | @default(NONE) @map("admin_resume_status") |
birthdate | birthdate | DateTime? | @db.Date |
ci | ci | String? | @db.VarChar(255) |
code | code | String | @unique @db.VarChar(255) |
email | email | String? | @db.VarChar(255) |
gender | gender | GenderType? | — |
kakaoId | kakao_id | BigInt? | @map("kakao_id") |
name | name | String? | @db.VarChar(255) |
nickname | nickname | String? | @db.VarChar(255) |
notificationEnabled | notification_enabled | Boolean | @default(false) @map("notification_enabled") |
password | password | String? | @db.VarChar(255) |
phone | phone | String? | @db.VarChar(255) |
lastAccessAt | last_access_at | DateTime? | @map("last_access_at") @db.Timestamptz(6) |
roles | roles | MemberRole[] | — |
files | files | MemberFile[] | — |
verifications | verifications | Verification[] | — |
agreementHistories | agreementHistories | AgreementHistory[] | — |
analyticsEvents | analyticsEvents | AnalyticsEvent[] | — |
identityLinks | identityLinks | IdentityLink[] | — |
gamePlays | gamePlays | GamePlay[] | — |
테이블 제약 @@unique([email, deletedAt], name: "idx_email_deleted_at") @@unique([nickname, deletedAt], name: "idx_nickname_deleted_at") @@map("member")
GamePlaygame_play
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
memberId | member_id | BigInt | @map("member_id") |
gameCode | game_code | String | @map("game_code") @db.VarChar(50) |
status | status | GamePlayStatus | @default(PLAYING) |
source | source | GamePlaySource | @default(OFFICIAL) |
score | score | Int | @default(0) |
maxTier | max_tier | Int | @default(1) @map("max_tier") |
watermelonCount | watermelon_count | Int | @default(0) @map("watermelon_count") |
seed | seed | Int | — |
durationMs | duration_ms | Int? | @map("duration_ms") |
proof | proof | Json? | — |
valid | valid | Boolean | @default(true) |
invalidReason | invalid_reason | String? | @map("invalid_reason") @db.VarChar(255) |
startedAt | started_at | DateTime | @default(now()) @map("started_at") @db.Timestamptz |
finishedAt | finished_at | DateTime? | @map("finished_at") @db.Timestamptz |
createdAt | created_at | DateTime | @default(now()) @map("created_at") @db.Timestamptz |
updatedAt | updated_at | DateTime | @updatedAt @map("updated_at") @db.Timestamptz |
member | member | Member | @relation(fields: [memberId], references: [id]) |
테이블 제약 @@index([memberId, gameCode, startedAt]) @@index([gameCode, status, score]) @@index([startedAt]) @@map("game_play")
KakaoNotificationPreferencekakao_notification_preference
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
type | type | KakaoNotificationType | — |
enabled | enabled | Boolean | @default(true) |
테이블 제약 @@unique([memberCode, type]) @@map("kakao_notification_preference")
KakaoMessageBatchkakao_message_batch
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
title | title | String | @db.VarChar(255) |
content | content | String | @db.Text |
channel | channel | KakaoMessageChannel | — |
purpose | purpose | KakaoMessagePurpose | — |
templateCode | template_code | String? | @map("template_code") @db.VarChar(255) |
scheduledAt | scheduled_at | DateTime? | @map("scheduled_at") @db.Timestamp(6) |
status | status | KakaoMessageStatus | @default(PENDING) |
totalCount | total_count | Int | @default(0) @map("total_count") |
successCount | success_count | Int | @default(0) @map("success_count") |
failCount | fail_count | Int | @default(0) @map("fail_count") |
messages | messages | KakaoMessageLog[] | — |
테이블 제약 @@map("kakao_message_batch")
KakaoMessageLogkakao_message_log
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
batchId | batch_id | BigInt? | @map("batch_id") |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
phone | phone | String | @db.VarChar(32) |
type | type | KakaoNotificationType | — |
channel | channel | KakaoMessageChannel | — |
purpose | purpose | KakaoMessagePurpose | — |
templateCode | template_code | String? | @map("template_code") @db.VarChar(255) |
title | title | String? | @db.VarChar(255) |
content | content | String | @db.Text |
status | status | KakaoMessageStatus | @default(PENDING) |
scheduledAt | scheduled_at | DateTime? | @map("scheduled_at") @db.Timestamp(6) |
sentAt | sent_at | DateTime? | @map("sent_at") @db.Timestamp(6) |
providerMsgId | provider_msg_id | String? | @map("provider_msg_id") @db.VarChar(255) |
failureCode | failure_code | String? | @map("failure_code") @db.VarChar(255) |
failureReason | failure_reason | String? | @map("failure_reason") @db.Text |
dedupeKey | dedupe_key | String? | @unique @map("dedupe_key") @db.VarChar(255) |
metadata | metadata | Json? | — |
batch | batch | KakaoMessageBatch? | @relation(fields: [batchId], references: [id]) |
테이블 제약 @@index([status, scheduledAt]) @@index([memberCode, createdAt]) @@map("kakao_message_log")
AgreementHistoryagreement_history
화면 연결: A01
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
isAgreed | is_agreed | Boolean? | @map("is_agreed") |
agreementId | agreement_id | BigInt | @map("agreement_id") |
memberId | member_id | BigInt | @map("member_id") |
agreement | agreement | Agreement | @relation(fields: [agreementId], references: [id]) |
member | member | Member | @relation(fields: [memberId], references: [id]) |
테이블 제약 @@map("agreement_history")
MemberFilemember_file
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
contentType | content_type | String? | @map("content_type") @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
s3path | s3path | String? | @db.VarChar(255) |
size | size | BigInt? | — |
status | status | FileStatus? | — |
type | type | FileType? | — |
property | property | MemberFileProperty? | — |
memberId | member_id | BigInt | @map("member_id") |
member | member | Member | @relation(fields: [memberId], references: [id]) |
테이블 제약 @@map("member_file")
MemberRolemember_role
화면 연결: A01
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
roleType | role_type | RoleType | @map("role_type") |
memberId | member_id | BigInt | @map("member_id") |
member | member | Member | @relation(fields: [memberId], references: [id]) |
테이블 제약 @@map("member_role")
Verificationverification
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
lawschoolName | lawschool_name | String? | @map("lawschool_name") @db.VarChar(255) |
acquireDate | acquire_date | DateTime? | @map("acquire_date") @db.Date |
qualificationType | qualification_type | VerificationQualificationType? | @map("qualification_type") |
round | round | Int? | — |
rejectReason | reject_reason | String? | @map("reject_reason") @db.VarChar(255) |
status | status | VerificationStatus? | — |
type | type | VerificationType? | — |
memberId | member_id | BigInt | @map("member_id") |
member | member | Member | @relation(fields: [memberId], references: [id]) |
files | files | VerificationFile[] | — |
테이블 제약 @@map("verification")
VerificationFileverification_file
화면 연결: A01
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
contentType | content_type | String? | @map("content_type") @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
s3path | s3path | String? | @db.VarChar(255) |
size | size | BigInt? | — |
status | status | FileStatus? | — |
type | type | FileType? | — |
property | property | String? | @db.VarChar(255) |
verificationId | verification_id | BigInt | @map("verification_id") |
verification | verification | Verification | @relation(fields: [verificationId], references: [id]) |
테이블 제약 @@map("verification_file")
Industryindustry
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
code | code | String? | @db.VarChar(255) |
description | description | String? | @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
companies | companies | Company[] | — |
resumeCareers | resumeCareers | ResumeCareer[] | — |
테이블 제약 @@map("industry")
MemberCareermember_career
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
companyName | company_name | String? | @map("company_name") @db.VarChar(255) |
issueNumber | issue_number | String? | @map("issue_number") @db.VarChar(255) |
issuedDate | issued_date | DateTime? | @map("issued_date") @db.Date |
joinMemberType | join_member_type | String? | @map("join_member_type") @db.VarChar(255) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
period | period | Bytes? | — |
resumeCareers | resumeCareers | ResumeCareer[] | — |
테이블 제약 @@map("member_career")
Resumeresume
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
coverLetter | cover_letter | String? | @map("cover_letter") @db.Text |
chineseCharacters | chinese_characters | String? | @map("chinese_characters") @db.VarChar(255) |
email | email | String? | @db.VarChar(255) |
phone | phone | String? | @db.VarChar(255) |
englishName | english_name | String? | @map("english_name") @db.VarChar(255) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
summary | summary | String? | @db.VarChar(255) |
title | title | String? | @db.VarChar(255) |
modules | modules | Json? | @default("[]") @db.JsonB |
highlights | highlights | Json? | @default("[]") @db.JsonB |
outputSettings | output_settings | Json? | @default("{}") @map("output_settings") @db.JsonB |
aiCapability | ai_capability | Json? | @default("{}") @map("ai_capability") @db.JsonB |
activities | activities | ResumeActivity[] | — |
careers | careers | ResumeCareer[] | — |
certifications | certifications | ResumeCertification[] | — |
educations | educations | ResumeEducation[] | — |
files | files | ResumeFile[] | — |
languages | languages | ResumeLanguage[] | — |
qualifications | qualifications | ResumeQualification[] | — |
lawyerResume | lawyerResume | LawyerResume? | — |
barExam | barExam | ResumeBarExam? | — |
judicialTraining | judicialTraining | ResumeJudicialTraining? | — |
resumeLinks | resumeLinks | ResumeLink[] | — |
resumePracticeAreas | resumePracticeAreas | ResumePracticeArea[] | — |
테이블 제약 @@map("resume")
ResumeBarExamresume_bar_exam
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
resumeId | resume_id | BigInt | @unique @map("resume_id") |
session | session | Int | — |
civilLaw | civil_law | Float? | @map("civil_law") |
criminalLaw | criminal_law | Float? | @map("criminal_law") |
publicLaw | public_law | Float? | @map("public_law") |
electiveSubject | elective_subject | String? | @map("elective_subject") @db.VarChar(32) |
elective | elective | Float? | — |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_bar_exam")
ResumeJudicialTrainingresume_judicial_training
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
resumeId | resume_id | BigInt | @unique @map("resume_id") |
cohort | cohort | Int | — |
score | score | Float? | — |
scoreTotal | score_total | Float? | @map("score_total") |
rank | rank | Int? | — |
rankTotal | rank_total | Int? | @map("rank_total") |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_judicial_training")
ResumeLinkresume_link
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
resumeId | resume_id | BigInt | @map("resume_id") |
url | url | String | @db.Text |
title | title | String? | @db.VarChar(500) |
description | description | String? | @db.VarChar(500) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_link")
ResumePracticeArearesume_practice_area
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
resumeId | resume_id | BigInt | @map("resume_id") |
specialization | specialization | String | @db.VarChar(100) |
registrationDate | registration_date | String | @map("registration_date") @db.VarChar(20) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_practice_area")
Companycompany
화면 연결: M02
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
businessNumber | business_number | String? | @map("business_number") @db.VarChar(255) |
avgAnnualSalary | avg_annual_salary | Decimal? | @map("avg_annual_salary") @db.Decimal |
value | value | Decimal? | @db.Decimal |
employeeCount | employee_count | Int? | @map("employee_count") |
foundationDate | foundation_date | DateTime? | @map("foundation_date") @db.Date |
hasLaborUnion | has_labor_union | Boolean? | @map("has_labor_union") |
name | name | String? | @db.VarChar(255) |
requestStatus | request_status | CompanyRequestStatus? | @map("request_status") |
sizeType | size_type | CompanySizeType? | @map("size_type") |
summary | summary | String? | @db.Text |
webSiteUrl | web_site_url | String? | @map("web_site_url") @db.VarChar(255) |
welfare | welfare | String? | @db.Text |
industryId | industry_id | BigInt? | @map("industry_id") |
ceoName | ceo_name | String? | @map("ceo_name") @db.VarChar(255) |
industry | industry | Industry? | @relation(fields: [industryId], references: [id]) |
addresses | addresses | CompanyAddress[] | — |
files | files | CompanyFile[] | — |
members | members | CompanyMember[] | — |
jobDescriptions | jobDescriptions | JobDescription[] | — |
테이블 제약 @@unique([businessNumber, deletedAt], name: "idx_business_number_deleted_at") @@map("company")
CompanyAddresscompany_address
화면 연결: M02
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
addressDetail | address_detail | String? | @map("address_detail") @db.VarChar(255) |
buildingName | building_name | String? | @map("building_name") @db.VarChar(255) |
cityName | city_name | String? | @map("city_name") @db.VarChar(255) |
districtName | district_name | String? | @map("district_name") @db.VarChar(255) |
jibunAddress | jibun_address | String? | @map("jibun_address") @db.VarChar(255) |
parcelNumber | parcel_number | String? | @map("parcel_number") @db.VarChar(255) |
postalCode | postal_code | String? | @map("postal_code") @db.VarChar(255) |
roadAddress | road_address | String? | @map("road_address") @db.VarChar(255) |
townName | town_name | String? | @map("town_name") @db.VarChar(255) |
villageName | village_name | String? | @map("village_name") @db.VarChar(255) |
x | x | Float? | — |
y | y | Float? | — |
companyId | company_id | BigInt | @map("company_id") |
company | company | Company | @relation(fields: [companyId], references: [id]) |
테이블 제약 @@map("company_address")
CompanyFilecompany_file
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
contentType | content_type | String? | @map("content_type") @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
s3path | s3path | String? | @db.VarChar(255) |
size | size | BigInt? | — |
status | status | FileStatus? | — |
type | type | FileType? | — |
property | property | CompanyFileProperty? | — |
companyId | company_id | BigInt | @map("company_id") |
company | company | Company | @relation(fields: [companyId], references: [id]) |
테이블 제약 @@map("company_file")
CompanyMembercompany_member
화면 연결: M02
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
department | department | String? | @db.VarChar(255) |
extensionNumber | extension_number | String? | @map("extension_number") @db.VarChar(255) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
position | position | String? | @db.VarChar(255) |
companyId | company_id | BigInt | @map("company_id") |
company | company | Company | @relation(fields: [companyId], references: [id]) |
테이블 제약 @@map("company_member")
JobDescriptionjob_description
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
benefit | benefit | String? | @db.Text |
certification | certification | String? | @db.VarChar(255) |
conversionRate | conversion_rate | Decimal? | @map("conversion_rate") @db.Decimal |
educationRequirementCollege | education_requirement_college | Boolean? | @map("education_requirement_college") |
educationRequirementGraduateSchool | education_requirement_graduate_school | Boolean? | @map("education_requirement_graduate_school") |
educationRequirementHighSchool | education_requirement_high_school | Boolean? | @map("education_requirement_high_school") |
educationRequirementIrrelevant | education_requirement_irrelevant | Boolean? | @map("education_requirement_irrelevant") |
educationRequirementLawSchool | education_requirement_law_school | Boolean? | @map("education_requirement_law_school") |
educationRequirementMaster | education_requirement_master | Boolean? | @map("education_requirement_master") |
educationRequirementPhd | education_requirement_phd | Boolean? | @map("education_requirement_phd") |
employmentType | employment_type | EmploymentType? | @map("employment_type") |
experienceRequirementLevel | experience_requirement_level | String? | @map("experience_requirement_level") @db.VarChar(20) |
experienceRequirementMax | experience_requirement_max | Int? | @map("experience_requirement_max") |
experienceRequirementMin | experience_requirement_min | Int? | @map("experience_requirement_min") |
experienceRequirementNone | experience_requirement_none | Boolean? | @map("experience_requirement_none") |
experienceRequirementIrrelevant | experience_requirement_irrelevant | Boolean? | @map("experience_requirement_irrelevant") |
hiringPeriodEndDate | hiring_period_end_date | DateTime? | @map("hiring_period_end_date") @db.Timestamp(6) |
hiringPeriodIsPermanent | hiring_period_is_permanent | Boolean? | @map("hiring_period_is_permanent") |
hiringPeriodIsAsap | hiring_period_is_asap | Boolean? | @map("hiring_period_is_asap") |
hiringPeriodStartDate | hiring_period_start_date | DateTime? | @map("hiring_period_start_date") @db.Timestamp(6) |
hiringProcessDocument | hiring_process_document | Boolean? | @map("hiring_process_document") |
hiringProcessFirstInterview | hiring_process_first_interview | Boolean? | @map("hiring_process_first_interview") |
hiringProcessSecondInterview | hiring_process_second_interview | Boolean? | @map("hiring_process_second_interview") |
hiringProcessTest | hiring_process_test | Boolean? | @map("hiring_process_test") |
hiringProcessEtc | hiring_process_etc | Boolean? | @map("hiring_process_etc") |
hiringProcessStep | hiring_process_step | String? | @map("hiring_process_step") @db.Text |
hiringProcessRequiredDocuments | hiring_process_required_documents | String? | @map("hiring_process_required_documents") @db.Text |
hiringProcessOptionalDocuments | hiring_process_optional_documents | String? | @map("hiring_process_optional_documents") @db.Text |
applicationMethod | application_method | String? | @map("application_method") @db.VarChar(255) |
applicationEndpoint | application_endpoint | String? | @map("application_endpoint") @db.Text |
hiringVolumeCount | hiring_volume_count | Int? | @map("hiring_volume_count") |
hiringVolumeIsUndecided | hiring_volume_is_undecided | Boolean? | @map("hiring_volume_is_undecided") |
position | position | String? | @db.VarChar(255) |
preferredQualifications | preferred_qualifications | String? | @map("preferred_qualifications") @db.Text |
requestStatus | request_status | CompanyRequestStatus? | @map("request_status") |
salaryDescription | salary_description | String? | @map("salary_description") @db.VarChar(255) |
salaryMax | salary_max | Decimal? | @map("salary_max") @db.Decimal |
salaryMin | salary_min | Decimal? | @map("salary_min") @db.Decimal |
salaryMinMonthly | salary_min_monthly | Decimal? | @map("salary_min_monthly") @db.Decimal |
signingBonus | signing_bonus | String? | @map("signing_bonus") @db.VarChar(255) |
taskDescription | task_description | String? | @map("task_description") @db.Text |
title | title | String? | @db.VarChar(255) |
visibleTo | visible_to | VisibleTo? | @map("visible_to") |
companyId | company_id | BigInt | @map("company_id") |
isPinned | is_pinned | Boolean? | @default(false) @map("is_pinned") |
recruitmentDetail | recruitment_detail | String? | @map("recruitment_detail") @db.Text |
company | company | Company | @relation(fields: [companyId], references: [id]) |
files | files | JobDescriptionFile[] | — |
addresses | addresses | JobAddress[] | — |
lawyerJobDescription | lawyerJobDescription | LawyerJobDescription? | — |
테이블 제약 @@map("job_description")
JobDescriptionActivityjob_description_activity
화면 연결: M02
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
jobDescriptionId | job_description_id | BigInt | @map("job_description_id") |
action | action | String | @db.VarChar(20) // CREATE | UPDATE | DELETE | CLOSE |
source | source | String | @db.VarChar(20) // BIZ | ADMIN | AUTOMATION |
actorMemberCode | actor_member_code | String? | @map("actor_member_code") @db.VarChar(255) |
changes | changes | Json? | // UPDATE diff { fields: [{label,before,after}] } / 그 외 { title } |
createdAt | created_at | DateTime | @default(now()) @map("created_at") @db.Timestamp(6) |
테이블 제약 @@index([jobDescriptionId]) @@map("job_description_activity")
JobDescriptionFilejob_description_file
화면 연결: M02
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
contentType | content_type | String? | @map("content_type") @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
s3path | s3path | String? | @db.VarChar(255) |
size | size | BigInt? | — |
status | status | FileStatus? | — |
type | type | FileType? | — |
property | property | JdFileProperty? | — |
jobDescriptionId | job_description_id | BigInt | @map("job_description_id") |
jobDescription | jobDescription | JobDescription | @relation(fields: [jobDescriptionId], references: [id]) |
테이블 제약 @@map("job_description_file")
JobAddressjob_address
화면 연결: M02
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
addressDetail | address_detail | String? | @map("address_detail") @db.VarChar(255) |
buildingName | building_name | String? | @map("building_name") @db.VarChar(255) |
cityName | city_name | String? | @map("city_name") @db.VarChar(255) |
districtName | district_name | String? | @map("district_name") @db.VarChar(255) |
jibunAddress | jibun_address | String? | @map("jibun_address") @db.VarChar(255) |
parcelNumber | parcel_number | String? | @map("parcel_number") @db.VarChar(255) |
postalCode | postal_code | String? | @map("postal_code") @db.VarChar(255) |
roadAddress | road_address | String? | @map("road_address") @db.VarChar(255) |
townName | town_name | String? | @map("town_name") @db.VarChar(255) |
villageName | village_name | String? | @map("village_name") @db.VarChar(255) |
x | x | Float? | — |
y | y | Float? | — |
jobDescriptionId | job_description_id | BigInt | @map("job_description_id") |
jobDescription | jobDescription | JobDescription | @relation(fields: [jobDescriptionId], references: [id]) |
테이블 제약 @@map("job_address")
ResumeActivityresume_activity
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
category | category | ResumeActivityCategory? | — |
description | description | String? | @db.Text |
name | name | String? | @db.VarChar(255) |
organizer | organizer | String? | @db.VarChar(255) |
endDate | end_date | DateTime? | @map("end_date") @db.Date |
startDate | start_date | DateTime? | @map("start_date") @db.Date |
resumeId | resume_id | BigInt | @map("resume_id") |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_activity")
ResumeCareerresume_career
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
value | value | Decimal? | @db.Decimal |
department | department | String? | @db.VarChar(255) |
employmentType | employment_type | ResumeCareerEmploymentType? | @map("employment_type") |
isCurrentlyEmployed | is_currently_employed | Boolean? | @map("is_currently_employed") |
isVerified | is_verified | Boolean? | @map("is_verified") |
name | name | String? | @db.VarChar(255) |
endDate | end_date | DateTime? | @map("end_date") @db.Date |
startDate | start_date | DateTime? | @map("start_date") @db.Date |
position | position | String? | @db.VarChar(255) |
reasonForLeaving | reason_for_leaving | String? | @map("reason_for_leaving") @db.VarChar(255) |
responsibilities | responsibilities | String? | @db.Text |
industryId | industry_id | BigInt? | @map("industry_id") |
careerId | career_id | BigInt? | @map("career_id") |
resumeId | resume_id | BigInt | @map("resume_id") |
industry | industry | Industry? | @relation(fields: [industryId], references: [id]) |
career | career | MemberCareer? | @relation(fields: [careerId], references: [id]) |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_career")
ResumeCertificationresume_certification
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
acquiredDate | acquired_date | String? | @map("acquired_date") @db.VarChar(255) |
code | code | String? | @db.VarChar(255) |
country | country | ResumeCertCountry? | — |
state | state | String? | @db.VarChar(255) |
issuer | issuer | String? | @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
resumeId | resume_id | BigInt | @map("resume_id") |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_certification")
ResumeEducationresume_education
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
alternativeExamYear | alternative_exam_year | Int? | @map("alternative_exam_year") |
degreeType | degree_type | ResumeDegreeType? | @map("degree_type") |
description | description | String? | @db.Text |
grade | grade | Decimal? | @db.Decimal |
graduateType | graduate_type | ResumeGraduateType? | @map("graduate_type") |
isAlternativeExam | is_alternative_exam | Boolean? | @map("is_alternative_exam") |
isTransferred | is_transferred | Boolean? | @map("is_transferred") |
major | major | String? | @db.VarChar(255) |
maxGrade | max_grade | Decimal? | @map("max_grade") @db.Decimal |
name | name | String? | @db.VarChar(255) |
endDate | end_date | DateTime? | @map("end_date") @db.Date |
startDate | start_date | DateTime? | @map("start_date") @db.Date |
type | type | ResumeEducationType? | — |
resumeId | resume_id | BigInt | @map("resume_id") |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_education")
ResumeFileresume_file
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
contentType | content_type | String? | @map("content_type") @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
s3path | s3path | String? | @db.VarChar(255) |
size | size | BigInt? | — |
status | status | FileStatus? | — |
type | type | FileType? | — |
property | property | ResumeFileProperty? | — |
sortOrder | sort_order | Int? | @map("sort_order") |
resumeId | resume_id | BigInt | @map("resume_id") |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_file")
ResumeLanguageresume_language
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
acquiredDate | acquired_date | String? | @map("acquired_date") @db.VarChar(255) |
issuer | issuer | String? | @db.VarChar(255) |
language | language | String? | @db.VarChar(255) |
proficiencyLevel | proficiency_level | ResumeLanguageProficiency? | @map("proficiency_level") |
score | score | String? | @db.VarChar(255) |
testName | test_name | String? | @map("test_name") @db.VarChar(255) |
resumeId | resume_id | BigInt | @map("resume_id") |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_language")
ResumeQualificationresume_qualification
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
hasAgreedToPrivacy | has_agreed_to_privacy | Boolean? | @map("has_agreed_to_privacy") |
isMilitary | is_military | Boolean? | @map("is_military") |
isPatriot | is_patriot | Boolean? | @map("is_patriot") |
isSubsidy | is_subsidy | Boolean? | @map("is_subsidy") |
endDate | end_date | DateTime? | @map("end_date") @db.Date |
startDate | start_date | DateTime? | @map("start_date") @db.Date |
militaryRank | military_rank | MilitaryRank? | @map("military_rank") |
militaryReason | military_reason | String? | @map("military_reason") @db.VarChar(255) |
militaryServiceType | military_service_type | MilitaryServiceType? | @map("military_service_type") |
militaryType | military_type | MilitaryType? | @map("military_type") |
patriotReason | patriot_reason | String? | @map("patriot_reason") @db.VarChar(255) |
subsidyType | subsidy_type | String? | @map("subsidy_type") @db.VarChar(255) |
resumeId | resume_id | BigInt | @map("resume_id") |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
테이블 제약 @@map("resume_qualification")
Postpost
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
category | category | PostCategory? | — |
content | content | String? | @db.Text |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
title | title | String? | @db.VarChar(255) |
sourceUrl | source_url | String? | @map("source_url") @db.VarChar(2048) |
sourceName | source_name | String? | @map("source_name") @db.VarChar(255) |
comments | comments | Comment[] | — |
files | files | PostFile[] | — |
lawyerPost | lawyerPost | LawyerPost? | — |
테이블 제약 @@map("post")
Commentcomment
화면 연결: M04
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
content | content | String? | @db.VarChar(1000) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
parentId | parent_id | BigInt? | @map("parent_id") |
postId | post_id | BigInt | @map("post_id") |
parent | parent | Comment? | @relation("CommentToComment", fields: [parentId], references: [id]) |
children | children | Comment[] | @relation("CommentToComment") |
post | post | Post | @relation(fields: [postId], references: [id]) |
lawyerComment | lawyerComment | LawyerComment? | — |
테이블 제약 @@map("comment")
PostFilepost_file
화면 연결: M04
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
contentType | content_type | String? | @map("content_type") @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
s3path | s3path | String? | @db.VarChar(255) |
size | size | BigInt? | — |
status | status | FileStatus? | — |
type | type | FileType? | — |
property | property | String? | @db.VarChar(255) |
sortOrder | sort_order | Int | @default(0) @map("sort_order") |
postId | post_id | BigInt | @map("post_id") |
post | post | Post | @relation(fields: [postId], references: [id]) |
테이블 제약 @@map("post_file")
Lawyerlawyer
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
practiceAreas | practiceAreas | LawyerPracticeArea[] | — |
specializations | specializations | LawyerSpecialization[] | — |
resumes | resumes | LawyerResume[] | — |
테이블 제약 @@unique([memberCode, deletedAt], name: "idx_lawyer_member_code_deleted_at") @@map("lawyer")
LawyerCommentlawyer_comment
화면 연결: M04
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
commentId | comment_id | BigInt | @unique @map("comment_id") |
likeCount | like_count | Int | @default(0) @map("like_count") |
comment | comment | Comment | @relation(fields: [commentId], references: [id]) |
likes | likes | LawyerCommentLike[] | — |
테이블 제약 @@map("lawyer_comment")
LawyerCompanylawyer_company
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
companyId | company_id | BigInt | @map("company_id") |
type | type | LawyerCompanyType? | — |
specializations | specializations | LawyerCompanySpecialization[] | — |
테이블 제약 @@map("lawyer_company")
LawyerCompanySpecializationlawyer_company_specialization
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
companyId | company_id | BigInt | @map("company_id") |
specialization | specialization | String | @db.VarChar(255) |
lawyerCompany | lawyerCompany | LawyerCompany | @relation(fields: [companyId], references: [id]) |
테이블 제약 @@id([companyId, specialization]) @@map("lawyer_company_specialization")
LawyerJobDescriptionlawyer_job_description
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
applyClickCount | apply_click_count | Int | @default(0) @map("apply_click_count") |
applyCount | apply_count | Int | @default(0) @map("apply_count") |
jobDescriptionId | job_description_id | BigInt | @unique @map("job_description_id") |
scrapCount | scrap_count | Int | @default(0) @map("scrap_count") |
isPartnerRegistration | is_partner_registration | Boolean? | @map("is_partner_registration") |
leaseDeposit | lease_deposit | Decimal? | @map("lease_deposit") @db.Decimal |
leaseHasAdditionalCost | lease_has_additional_cost | Boolean? | @map("lease_has_additional_cost") |
leaseMonthlyRent | lease_monthly_rent | Decimal? | @map("lease_monthly_rent") @db.Decimal |
endDate | end_date | DateTime? | @map("end_date") @db.Timestamp(6) |
startDate | start_date | DateTime? | @map("start_date") @db.Timestamp(6) |
obligationPeriodDescription | obligation_period_description | String? | @map("obligation_period_description") @db.VarChar(255) |
officeDescription | office_description | String? | @map("office_description") @db.Text |
repaymentValue | repayment_value | Decimal? | @map("repayment_value") @db.Decimal |
type | type | LawyerJdType? | — |
viewCount | view_count | Int | @default(0) @map("view_count") |
jobDescription | jobDescription | JobDescription | @relation(fields: [jobDescriptionId], references: [id]) |
practiceAreas | practiceAreas | LawyerJdPracticeArea[] | — |
specializations | specializations | LawyerJdSpecialization[] | — |
applications | applications | JobApplication[] | — |
scraps | scraps | JobDescriptionScrap[] | — |
테이블 제약 @@map("lawyer_job_description")
LawyerJdPracticeArealawyer_job_description_practice_area
화면 연결: M02
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
jobDescriptionId | job_description_id | BigInt | @map("job_description_id") |
practiceArea | practice_area | PracticeArea | @map("practice_area") |
lawyerJobDescription | lawyerJobDescription | LawyerJobDescription | @relation(fields: [jobDescriptionId], references: [id]) |
테이블 제약 @@id([jobDescriptionId, practiceArea]) @@map("lawyer_job_description_practice_area")
LawyerJdSpecializationlawyer_job_description_specialization
화면 연결: M02
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
jobDescriptionId | job_description_id | BigInt | @map("job_description_id") |
specialization | specialization | String | @db.VarChar(255) |
lawyerJobDescription | lawyerJobDescription | LawyerJobDescription | @relation(fields: [jobDescriptionId], references: [id]) |
테이블 제약 @@id([jobDescriptionId, specialization]) @@map("lawyer_job_description_specialization")
LawyerPostlawyer_post
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
likeCount | like_count | Int | @default(0) @map("like_count") |
postId | post_id | BigInt | @unique @map("post_id") |
viewCount | view_count | Int | @default(0) @map("view_count") |
post | post | Post | @relation(fields: [postId], references: [id]) |
likes | likes | LawyerPostLike[] | — |
테이블 제약 @@map("lawyer_post")
Notificationnotification
화면 연결: M06
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
category | category | NotificationCategory? | — |
hasRead | has_read | Boolean | @default(false) @map("has_read") |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
target | target | NotificationTarget? | — |
targetId | target_id | BigInt? | @map("target_id") |
title | title | String? | @db.VarChar(255) |
테이블 제약 @@map("notification")
Reportreport
화면 연결: M04
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
commentId | comment_id | BigInt? | @map("comment_id") |
postId | post_id | BigInt? | @map("post_id") |
reason | reason | ReportReason? | — |
테이블 제약 @@map("report")
SalaryStatisticsalary_statistic
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
averageSalary | average_salary | Decimal? | @map("average_salary") @db.Decimal |
statisticsType | statistics_type | SalaryStatisticsType? | @map("statistics_type") |
테이블 제약 @@map("salary_statistic")
JobApplicationjob_application
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
hasRead | has_read | Boolean | @default(false) @map("has_read") |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
resume | resume | Json? | — |
status | status | JobApplicationStatus? | — |
totalCareerDurationInMonths | total_career_duration_in_months | Int? | @map("total_career_duration_in_months") |
jobDescriptionId | job_description_id | BigInt | @map("job_description_id") |
lawyerJobDescription | lawyerJobDescription | LawyerJobDescription | @relation(fields: [jobDescriptionId], references: [id]) |
files | files | JobApplicationFile[] | — |
resumeBundles | resumeBundles | ResumeBundle[] | — |
테이블 제약 @@map("job_application")
JobApplicationFilejob_application_file
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
contentType | content_type | String? | @map("content_type") @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
s3path | s3path | String? | @db.VarChar(255) |
size | size | BigInt? | — |
status | status | FileStatus? | — |
type | type | FileType? | — |
property | property | String? | @db.VarChar(255) |
sortOrder | sort_order | Int? | @map("sort_order") |
jobApplicationId | job_application_id | BigInt | @map("job_application_id") |
jobApplication | jobApplication | JobApplication | @relation(fields: [jobApplicationId], references: [id]) |
테이블 제약 @@map("job_application_file")
ResumeBundleresume_bundle
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
name | name | String | @db.VarChar(255) |
s3path | s3path | String | @db.VarChar(255) |
size | size | BigInt? | — |
jobApplicationId | job_application_id | BigInt? | @map("job_application_id") |
sourceResumeId | source_resume_id | BigInt? | @map("source_resume_id") |
sourceResumeUpdatedAt | source_resume_updated_at | DateTime? | @map("source_resume_updated_at") @db.Timestamp(6) |
createdAt | created_at | DateTime | @map("created_at") @db.Timestamp(6) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
jobApplication | jobApplication | JobApplication? | @relation(fields: [jobApplicationId], references: [id], onDelete: SetNull) |
테이블 제약 @@index([memberCode], map: "resume_bundle_member_code_idx") @@map("resume_bundle")
JobDescriptionScrapjob_description_scrap
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
lawyerJobDescriptionId | lawyer_job_description_id | BigInt | @map("lawyer_job_description_id") |
lawyerJobDescription | lawyerJobDescription | LawyerJobDescription | @relation(fields: [lawyerJobDescriptionId], references: [id]) |
테이블 제약 @@map("job_description_scrap")
LawyerCommentLikelawyer_comment_like
화면 연결: M04
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
lawyerCommentId | lawyer_comment_id | BigInt | @map("lawyer_comment_id") |
lawyerComment | lawyerComment | LawyerComment | @relation(fields: [lawyerCommentId], references: [id]) |
테이블 제약 @@map("lawyer_comment_like")
LawyerPostLikelawyer_post_like
화면 연결: M04
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
lawyerPostId | lawyer_post_id | BigInt | @map("lawyer_post_id") |
lawyerPost | lawyerPost | LawyerPost | @relation(fields: [lawyerPostId], references: [id]) |
테이블 제약 @@map("lawyer_post_like")
LawyerPracticeArealawyer_practice_area
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
lawyerId | lawyer_id | BigInt | @map("lawyer_id") |
practiceArea | practice_area | PracticeArea | @map("practice_area") |
lawyer | lawyer | Lawyer | @relation(fields: [lawyerId], references: [id]) |
테이블 제약 @@id([lawyerId, practiceArea]) @@map("lawyer_practice_area")
LawyerResumelawyer_resume
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
value | value | Decimal? | @db.Decimal |
salaryType | salary_type | String? | @map("salary_type") @db.VarChar(20) |
isNegotiable | is_negotiable | Boolean? | @map("is_negotiable") |
isDefault | is_default | Boolean? | @map("is_default") |
resumeId | resume_id | BigInt | @unique @map("resume_id") |
lawyerId | lawyer_id | BigInt | @map("lawyer_id") |
resume | resume | Resume | @relation(fields: [resumeId], references: [id]) |
lawyer | lawyer | Lawyer | @relation(fields: [lawyerId], references: [id]) |
테이블 제약 @@map("lawyer_resume")
LawyerSpecializationlawyer_specialization
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
lawyerId | lawyer_id | BigInt | @map("lawyer_id") |
specialization | specialization | String | @db.VarChar(255) |
lawyer | lawyer | Lawyer | @relation(fields: [lawyerId], references: [id]) |
테이블 제약 @@id([lawyerId, specialization]) @@map("lawyer_specialization")
SpecUpspec_up
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
applyClickCount | apply_click_count | Int | @default(0) @map("apply_click_count") |
applyType | apply_type | String? | @map("apply_type") @db.VarChar(255) |
category | category | SpecUpCategory? | — |
description | description | String? | @db.Text |
externalUrl | external_url | String? | @map("external_url") @db.VarChar(255) |
endedAt | ended_at | DateTime? | @map("ended_at") @db.Timestamp(6) |
startedAt | started_at | DateTime? | @map("started_at") @db.Timestamp(6) |
scrapCount | scrap_count | Int | @default(0) @map("scrap_count") |
title | title | String? | @db.VarChar(255) |
viewCount | view_count | Int | @default(0) @map("view_count") |
address | address | SpecUpAddress? | — |
files | files | SpecUpFile[] | — |
scraps | scraps | SpecUpScrap[] | — |
테이블 제약 @@map("spec_up")
SpecUpAddressspec_up_address
화면 연결: M03
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
addressDetail | address_detail | String? | @map("address_detail") @db.VarChar(255) |
buildingName | building_name | String? | @map("building_name") @db.VarChar(255) |
cityName | city_name | String? | @map("city_name") @db.VarChar(255) |
districtName | district_name | String? | @map("district_name") @db.VarChar(255) |
jibunAddress | jibun_address | String? | @map("jibun_address") @db.VarChar(255) |
parcelNumber | parcel_number | String? | @map("parcel_number") @db.VarChar(255) |
postalCode | postal_code | String? | @map("postal_code") @db.VarChar(255) |
roadAddress | road_address | String? | @map("road_address") @db.VarChar(255) |
townName | town_name | String? | @map("town_name") @db.VarChar(255) |
villageName | village_name | String? | @map("village_name") @db.VarChar(255) |
x | x | Float? | — |
y | y | Float? | — |
specUpId | spec_up_id | BigInt | @unique @map("spec_up_id") |
specUp | specUp | SpecUp | @relation(fields: [specUpId], references: [id]) |
테이블 제약 @@map("spec_up_address")
SpecUpFilespec_up_file
화면 연결: M03
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
contentType | content_type | String? | @map("content_type") @db.VarChar(255) |
name | name | String? | @db.VarChar(255) |
s3path | s3path | String? | @db.VarChar(255) |
size | size | BigInt? | — |
status | status | FileStatus? | — |
type | type | FileType? | — |
property | property | String? | @db.VarChar(255) |
specUpId | spec_up_id | BigInt | @map("spec_up_id") |
specUp | specUp | SpecUp | @relation(fields: [specUpId], references: [id]) |
테이블 제약 @@map("spec_up_file")
SpecUpScrapspec_up_scrap
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
specUpId | spec_up_id | BigInt | @map("spec_up_id") |
specUp | specUp | SpecUp | @relation(fields: [specUpId], references: [id]) |
테이블 제약 @@unique([specUpId, memberCode]) @@map("spec_up_scrap")
AutomationSourceautomation_source
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
slug | slug | String | @unique @db.VarChar(64) |
name | name | String | @db.VarChar(128) |
type | type | AutomationSourceType | — |
isActive | is_active | Boolean | @default(true) @map("is_active") |
autoPublish | auto_publish | Boolean | @default(false) @map("auto_publish") |
autoPublishLawyerKeyword | auto_publish_lawyer_keyword | Boolean | @default(false) @map("auto_publish_lawyer_keyword") |
lastRunAt | last_run_at | DateTime? | @map("last_run_at") @db.Timestamp(6) |
lastError | last_error | String? | @map("last_error") @db.Text |
createdAt | created_at | DateTime? | @default(now()) @map("created_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @updatedAt @map("updated_at") @db.Timestamp(6) |
items | items | AutomationItem[] | — |
테이블 제약 @@map("automation_source")
AutomationItemautomation_item
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
sourceId | source_id | BigInt | @map("source_id") |
dedupKey | dedup_key | String | @map("dedup_key") @db.VarChar(128) |
title | title | String? | @db.VarChar(500) |
categoryHint | category_hint | String? | @map("category_hint") @db.VarChar(64) |
rawPayload | raw_payload | Json | @map("raw_payload") |
normalized | normalized | Json | — |
status | status | AutomationItemStatus | @default(NEW) |
failReason | fail_reason | String? | @map("fail_reason") @db.Text |
collectedAt | collected_at | DateTime? | @default(now()) @map("collected_at") @db.Timestamp(6) |
reviewedAt | reviewed_at | DateTime? | @map("reviewed_at") @db.Timestamp(6) |
publishedAt | published_at | DateTime? | @map("published_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @updatedAt @map("updated_at") @db.Timestamp(6) |
source | source | AutomationSource | @relation(fields: [sourceId], references: [id]) |
publishLogs | publishLogs | AutomationPublishLog[] | — |
테이블 제약 @@unique([sourceId, dedupKey]) @@index([status, collectedAt]) @@index([sourceId, status]) @@map("automation_item")
AutomationPublishLogautomation_publish_log
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
itemId | item_id | BigInt | @map("item_id") |
target | target | String | @db.VarChar(32) |
targetId | target_id | BigInt | @map("target_id") |
publishedBy | published_by | String | @map("published_by") @db.VarChar(255) |
publishedAt | published_at | DateTime | @default(now()) @map("published_at") @db.Timestamp(6) |
item | item | AutomationItem | @relation(fields: [itemId], references: [id]) |
테이블 제약 @@index([itemId]) @@map("automation_publish_log")
MemberDailyActivitymember_daily_activity
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
activityDate | activity_date | DateTime | @map("activity_date") @db.Date |
firstSeenAt | first_seen_at | DateTime | @default(now()) @map("first_seen_at") @db.Timestamptz(6) |
테이블 제약 @@id([memberCode, activityDate]) @@index([activityDate]) @@map("member_daily_activity")
AnalyticsEventanalytics_event
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
anonymousId | anonymous_id | String | @map("anonymous_id") @db.Uuid |
memberId | member_id | BigInt? | @map("member_id") |
sessionId | session_id | String | @map("session_id") @db.Uuid |
eventName | event_name | String | @map("event_name") @db.VarChar(64) |
properties | properties | Json | @default("{}") |
userAgent | user_agent | String? | @map("user_agent") @db.VarChar(512) |
ipHash | ip_hash | String? | @map("ip_hash") @db.VarChar(64) |
occurredAt | occurred_at | DateTime | @default(now()) @map("occurred_at") @db.Timestamptz(6) |
member | member | Member? | @relation(fields: [memberId], references: [id], onDelete: SetNull) |
테이블 제약 @@index([occurredAt]) @@index([memberId, occurredAt]) @@index([sessionId]) @@index([eventName, occurredAt]) @@index([anonymousId, occurredAt]) @@map("analytics_event")
IdentityLinkidentity_link
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
anonymousId | anonymous_id | String | @map("anonymous_id") @db.Uuid |
memberId | member_id | BigInt | @map("member_id") |
linkedAt | linked_at | DateTime | @default(now()) @map("linked_at") @db.Timestamptz(6) |
member | member | Member | @relation(fields: [memberId], references: [id], onDelete: Cascade) |
테이블 제약 @@unique([anonymousId, memberId]) @@index([memberId]) @@index([anonymousId]) @@map("identity_link")
AdminActivityadmin_activity
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
action | action | String | @db.VarChar(64) |
targetType | target_type | String | @map("target_type") @db.VarChar(32) |
targetId | target_id | String | @map("target_id") @db.VarChar(64) |
actorMemberCode | actor_member_code | String? | @map("actor_member_code") @db.VarChar(255) |
source | source | String | @default("ADMIN") @db.VarChar(16) |
reason | reason | String? | — |
meta | meta | Json? | — |
createdAt | created_at | DateTime | @default(now()) @map("created_at") @db.Timestamptz(6) |
테이블 제약 @@index([targetType, targetId, createdAt(sort: Desc)], map: "admin_activity_target_idx") @@index([actorMemberCode, createdAt(sort: Desc)], map: "admin_activity_actor_idx") @@map("admin_activity")
EmailCampaignBatchemail_campaign_batch
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
subject | subject | String | @db.VarChar(255) |
heading | heading | String | @db.VarChar(255) |
bodyText | body_text | String | @map("body_text") @db.Text |
buttonText | button_text | String? | @map("button_text") @db.VarChar(255) |
buttonUrl | button_url | String? | @map("button_url") @db.VarChar(2048) |
imageUrl | image_url | String? | @map("image_url") @db.VarChar(2048) |
isAd | is_ad | Boolean | @default(false) @map("is_ad") |
targetGroups | target_groups | Json | @map("target_groups") |
status | status | EmailCampaignStatus | @default(PENDING) |
totalCount | total_count | Int | @default(0) @map("total_count") |
successCount | success_count | Int | @default(0) @map("success_count") |
failCount | fail_count | Int | @default(0) @map("fail_count") |
campaignType | campaign_type | EmailCampaignType | @default(SERVICE_NOTICE) @map("campaign_type") |
batchStatus | batch_status | EmailCampaignBatchStatus | @default(DRAFT) @map("batch_status") |
senderName | sender_name | String? | @map("sender_name") @db.VarChar(120) |
senderEmail | sender_email | String? | @map("sender_email") @db.VarChar(255) |
replyTo | reply_to | String? | @map("reply_to") @db.VarChar(255) |
htmlBody | html_body | String? | @map("html_body") @db.Text |
personalizationDefaults | personalization_defaults | Json? | @map("personalization_defaults") |
deliveryRateSettings | delivery_rate_settings | Json? | @map("delivery_rate_settings") |
provider | provider | EmailProviderType | @default(SES) |
idempotencyKey | idempotency_key | String? | @unique @map("idempotency_key") @db.VarChar(120) |
inputCount | input_count | Int | @default(0) @map("input_count") |
excludedCount | excluded_count | Int | @default(0) @map("excluded_count") |
finalTargetCount | final_target_count | Int | @default(0) @map("final_target_count") |
acceptedCount | accepted_count | Int | @default(0) @map("accepted_count") |
deliveredCount | delivered_count | Int | @default(0) @map("delivered_count") |
bouncedCount | bounced_count | Int | @default(0) @map("bounced_count") |
complainedCount | complained_count | Int | @default(0) @map("complained_count") |
openDetectedCount | open_detected_count | Int | @default(0) @map("open_detected_count") |
isTest | is_test | Boolean | @default(false) @map("is_test") |
policyVersion | policy_version | String? | @map("policy_version") @db.VarChar(80) |
queuedAt | queued_at | DateTime? | @map("queued_at") @db.Timestamptz(6) |
startedAt | started_at | DateTime? | @map("started_at") @db.Timestamptz(6) |
finishedAt | finished_at | DateTime? | @map("finished_at") @db.Timestamptz(6) |
stopRequestedAt | stop_requested_at | DateTime? | @map("stop_requested_at") @db.Timestamptz(6) |
logs | logs | EmailCampaignLog[] | — |
events | events | EmailProviderEvent[] | — |
audits | audits | EmailCampaignAuditLog[] | — |
테이블 제약 @@index([batchStatus, queuedAt]) @@map("email_campaign_batch")
EmailCampaignLogemail_campaign_log
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
createdAt | created_at | DateTime? | @map("created_at") @db.Timestamp(6) |
updatedAt | updated_at | DateTime? | @map("updated_at") @db.Timestamp(6) |
batchId | batch_id | BigInt | @map("batch_id") |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
email | email | String | @db.VarChar(255) |
status | status | EmailCampaignStatus | @default(PENDING) |
failureCode | failure_code | String? | @map("failure_code") @db.VarChar(255) |
failureReason | failure_reason | String? | @map("failure_reason") @db.Text |
sentAt | sent_at | DateTime? | @map("sent_at") @db.Timestamp(6) |
retryCount | retry_count | Int | @default(0) @map("retry_count") |
nextAttemptAt | next_attempt_at | DateTime? | @map("next_attempt_at") @db.Timestamp(6) |
dedupeKey | dedupe_key | String? | @unique @map("dedupe_key") @db.VarChar(255) |
normalizedEmail | normalized_email | String? | @map("normalized_email") @db.VarChar(255) |
source | source | EmailRecipientSource | @default(MEMBER) |
memberName | member_name | String? | @map("member_name") @db.VarChar(120) |
companyName | company_name | String? | @map("company_name") @db.VarChar(255) |
contactName | contact_name | String? | @map("contact_name") @db.VarChar(120) |
acquisitionSource | acquisition_source | String? | @map("acquisition_source") @db.VarChar(500) |
contactMemo | contact_memo | String? | @map("contact_memo") @db.Text |
registeredBy | registered_by | String? | @map("registered_by") @db.VarChar(255) |
registeredAt | registered_at | DateTime? | @map("registered_at") @db.Timestamptz(6) |
personalization | personalization | Json? | — |
processStatus | process_status | EmailRecipientProcessStatus | @default(QUEUED) @map("process_status") |
deliveryStatus | delivery_status | EmailDeliveryStatus | @default(UNKNOWN) @map("delivery_status") |
engagementStatus | engagement_status | EmailEngagementStatus | @default(UNCONFIRMED) @map("engagement_status") |
exclusionReason | exclusion_reason | EmailSuppressionReason? | @map("exclusion_reason") |
exclusionDetail | exclusion_detail | String? | @map("exclusion_detail") @db.VarChar(500) |
providerMessageId | provider_message_id | String? | @unique @map("provider_message_id") @db.VarChar(255) |
trackingId | tracking_id | String? | @unique @map("tracking_id") @db.Uuid |
claimedAt | claimed_at | DateTime? | @map("claimed_at") @db.Timestamptz(6) |
leaseUntil | lease_until | DateTime? | @map("lease_until") @db.Timestamptz(6) |
lockedBy | locked_by | String? | @map("locked_by") @db.VarChar(120) |
acceptedAt | accepted_at | DateTime? | @map("accepted_at") @db.Timestamptz(6) |
failedAt | failed_at | DateTime? | @map("failed_at") @db.Timestamptz(6) |
firstDeliveredAt | first_delivered_at | DateTime? | @map("first_delivered_at") @db.Timestamptz(6) |
lastDeliveredAt | last_delivered_at | DateTime? | @map("last_delivered_at") @db.Timestamptz(6) |
firstOpenAt | first_open_at | DateTime? | @map("first_open_at") @db.Timestamptz(6) |
lastOpenAt | last_open_at | DateTime? | @map("last_open_at") @db.Timestamptz(6) |
firstClickAt | first_click_at | DateTime? | @map("first_click_at") @db.Timestamptz(6) |
lastClickAt | last_click_at | DateTime? | @map("last_click_at") @db.Timestamptz(6) |
lastEventAt | last_event_at | DateTime? | @map("last_event_at") @db.Timestamptz(6) |
recipientDomain | recipient_domain | String? | @map("recipient_domain") @db.VarChar(255) |
mxProvider | mx_provider | EmailMxProvider | @default(UNKNOWN) @map("mx_provider") |
deliveryGroup | delivery_group | String | @default("UNKNOWN") @map("delivery_group") @db.VarChar(80) |
dispatchOrder | dispatch_order | Int | @default(0) @map("dispatch_order") |
batch | batch | EmailCampaignBatch | @relation(fields: [batchId], references: [id]) |
attempts | attempts | EmailCampaignAttempt[] | — |
events | events | EmailProviderEvent[] | — |
unsubscribeTokens | unsubscribeTokens | EmailUnsubscribeToken[] | — |
테이블 제약 @@unique([batchId, normalizedEmail]) @@index([batchId]) @@index([status]) @@index([status, nextAttemptAt]) @@index([processStatus, nextAttemptAt]) @@index([batchId, processStatus]) @@index([batchId, deliveryStatus]) @@index([batchId, engagementStatus]) @@index([batchId, dispatchOrder]) @@index([batchId, mxProvider, recipientDomain]) @@map("email_campaign_log")
EmailCampaignAttemptemail_campaign_attempt
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
recipientId | recipient_id | BigInt | @map("recipient_id") |
attemptNo | attempt_no | Int | @map("attempt_no") |
provider | provider | EmailProviderType | — |
status | status | EmailAttemptStatus | — |
providerMessageId | provider_message_id | String? | @map("provider_message_id") @db.VarChar(255) |
failureCode | failure_code | String? | @map("failure_code") @db.VarChar(255) |
failureReason | failure_reason | String? | @map("failure_reason") @db.VarChar(1000) |
startedAt | started_at | DateTime | @default(now()) @map("started_at") @db.Timestamptz(6) |
finishedAt | finished_at | DateTime? | @map("finished_at") @db.Timestamptz(6) |
recipient | recipient | EmailCampaignLog | @relation(fields: [recipientId], references: [id]) |
events | events | EmailProviderEvent[] | — |
테이블 제약 @@unique([recipientId, attemptNo]) @@index([providerMessageId]) @@map("email_campaign_attempt")
EmailProviderEventemail_provider_event
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
providerEventId | provider_event_id | String | @unique @map("provider_event_id") @db.VarChar(255) |
providerMessageId | provider_message_id | String? | @map("provider_message_id") @db.VarChar(255) |
batchId | batch_id | BigInt? | @map("batch_id") |
recipientId | recipient_id | BigInt? | @map("recipient_id") |
attemptId | attempt_id | BigInt? | @map("attempt_id") |
type | type | EmailProviderEventType | — |
occurredAt | occurred_at | DateTime | @map("occurred_at") @db.Timestamptz(6) |
receivedAt | received_at | DateTime | @default(now()) @map("received_at") @db.Timestamptz(6) |
isAutomated | is_automated | Boolean | @default(false) @map("is_automated") |
rawSubset | raw_subset | Json? | @map("raw_subset") |
unknownReason | unknown_reason | String? | @map("unknown_reason") @db.VarChar(500) |
recipientDomain | recipient_domain | String? | @map("recipient_domain") @db.VarChar(255) |
mxProvider | mx_provider | EmailMxProvider? | @map("mx_provider") |
delayType | delay_type | String? | @map("delay_type") @db.VarChar(80) |
smtpStatusCode | smtp_status_code | String? | @map("smtp_status_code") @db.VarChar(30) |
diagnosticCode | diagnostic_code | String? | @map("diagnostic_code") @db.VarChar(500) |
batch | batch | EmailCampaignBatch? | @relation(fields: [batchId], references: [id]) |
recipient | recipient | EmailCampaignLog? | @relation(fields: [recipientId], references: [id]) |
attempt | attempt | EmailCampaignAttempt? | @relation(fields: [attemptId], references: [id]) |
테이블 제약 @@index([providerMessageId]) @@index([recipientId, occurredAt]) @@index([mxProvider, occurredAt]) @@index([recipientDomain, occurredAt]) @@map("email_provider_event")
EmailMxCacheemail_mx_cache
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
domain | domain | String | @id @db.VarChar(255) |
provider | provider | EmailMxProvider | — |
mxHosts | mx_hosts | Json | @map("mx_hosts") |
resolvedAt | resolved_at | DateTime | @map("resolved_at") @db.Timestamptz(6) |
expiresAt | expires_at | DateTime | @map("expires_at") @db.Timestamptz(6) |
lastError | last_error | String? | @map("last_error") @db.VarChar(500) |
테이블 제약 @@index([expiresAt]) @@map("email_mx_cache")
EmailDeliveryThrottleStateemail_delivery_throttle_state
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
scope | scope | EmailThrottleScope | — |
groupKey | group_key | String | @map("group_key") @db.VarChar(255) |
effectiveMultiplier | effective_multiplier | Float | @default(1) @map("effective_multiplier") |
nextAllowedAt | next_allowed_at | DateTime? | @map("next_allowed_at") @db.Timestamptz(6) |
pauseUntil | pause_until | DateTime? | @map("pause_until") @db.Timestamptz(6) |
pauseLevel | pause_level | Int | @default(0) @map("pause_level") |
reason | reason | String? | @db.VarChar(500) |
lastSignalAt | last_signal_at | DateTime? | @map("last_signal_at") @db.Timestamptz(6) |
lastHealthyAt | last_healthy_at | DateTime? | @map("last_healthy_at") @db.Timestamptz(6) |
updatedBy | updated_by | String? | @map("updated_by") @db.VarChar(255) |
updatedAt | updated_at | DateTime | @updatedAt @map("updated_at") @db.Timestamptz(6) |
테이블 제약 @@unique([scope, groupKey]) @@index([pauseUntil]) @@map("email_delivery_throttle_state")
EmailDeliveryRateSettingemail_delivery_rate_setting
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
globalRate | global_rate | Float | @map("global_rate") |
providerRates | provider_rates | Json | @map("provider_rates") |
domainRate | domain_rate | Float | @map("domain_rate") |
concurrentRequests | concurrent_requests | Int | @map("concurrent_requests") |
changedBy | changed_by | String | @map("changed_by") @db.VarChar(255) |
createdAt | created_at | DateTime | @default(now()) @map("created_at") @db.Timestamptz(6) |
테이블 제약 @@index([createdAt]) @@map("email_delivery_rate_setting")
EmailEventIngestFailureemail_event_ingest_failure
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
queueMessageId | queue_message_id | String | @unique @map("queue_message_id") @db.VarChar(255) |
failureCount | failure_count | Int | @default(1) @map("failure_count") |
lastError | last_error | String | @map("last_error") @db.VarChar(1000) |
firstFailedAt | first_failed_at | DateTime | @default(now()) @map("first_failed_at") @db.Timestamptz(6) |
lastFailedAt | last_failed_at | DateTime | @default(now()) @map("last_failed_at") @db.Timestamptz(6) |
테이블 제약 @@index([lastFailedAt]) @@map("email_event_ingest_failure")
EmailSuppressionEntryemail_suppression_entry
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
email | email | String | @db.VarChar(255) |
normalizedEmail | normalized_email | String | @map("normalized_email") @db.VarChar(255) |
campaignType | campaign_type | EmailCampaignType | @map("campaign_type") |
reason | reason | EmailSuppressionReason | — |
source | source | EmailSuppressionSource | — |
note | note | String? | @db.VarChar(500) |
active | active | Boolean | @default(true) |
createdBy | created_by | String? | @map("created_by") @db.VarChar(255) |
createdAt | created_at | DateTime | @default(now()) @map("created_at") @db.Timestamptz(6) |
releasedBy | released_by | String? | @map("released_by") @db.VarChar(255) |
releasedAt | released_at | DateTime? | @map("released_at") @db.Timestamptz(6) |
histories | histories | EmailSuppressionHistory[] | — |
테이블 제약 @@unique([normalizedEmail, campaignType]) @@index([active, reason]) @@map("email_suppression_entry")
EmailSuppressionHistoryemail_suppression_history
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
suppressionId | suppression_id | BigInt | @map("suppression_id") |
action | action | String | @db.VarChar(30) |
reason | reason | EmailSuppressionReason | — |
source | source | EmailSuppressionSource | — |
note | note | String? | @db.VarChar(500) |
actorCode | actor_code | String? | @map("actor_code") @db.VarChar(255) |
createdAt | created_at | DateTime | @default(now()) @map("created_at") @db.Timestamptz(6) |
suppression | suppression | EmailSuppressionEntry | @relation(fields: [suppressionId], references: [id]) |
테이블 제약 @@index([suppressionId, createdAt]) @@map("email_suppression_history")
EmailUnsubscribeTokenemail_unsubscribe_token
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
tokenHash | token_hash | String | @unique @map("token_hash") @db.Char(64) |
recipientId | recipient_id | BigInt | @map("recipient_id") |
expiresAt | expires_at | DateTime | @map("expires_at") @db.Timestamptz(6) |
usedAt | used_at | DateTime? | @map("used_at") @db.Timestamptz(6) |
createdAt | created_at | DateTime | @default(now()) @map("created_at") @db.Timestamptz(6) |
recipient | recipient | EmailCampaignLog | @relation(fields: [recipientId], references: [id]) |
테이블 제약 @@index([recipientId]) @@map("email_unsubscribe_token")
EmailCampaignAuditLogemail_campaign_audit_log
화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
id | id | BigInt | @id @default(autoincrement()) |
batchId | batch_id | BigInt? | @map("batch_id") |
action | action | EmailCampaignAuditAction | — |
actorCode | actor_code | String | @map("actor_code") @db.VarChar(255) |
targetCount | target_count | Int? | @map("target_count") |
metadata | metadata | Json? | — |
createdAt | created_at | DateTime | @default(now()) @map("created_at") @db.Timestamptz(6) |
batch | batch | EmailCampaignBatch? | @relation(fields: [batchId], references: [id]) |
테이블 제약 @@index([batchId, createdAt]) @@index([actorCode, createdAt]) @@map("email_campaign_audit_log")
WebCardweb_card
화면 연결: M01
| 필드 | DB 컬럼 | 타입 | 키·관계·기본값 |
|---|---|---|---|
code | code | String | @id @db.VarChar(16) |
theme | theme | String | @db.VarChar(32) |
title | title | String | @db.VarChar(80) |
message | message | String | @db.VarChar(400) |
sender | sender | String | @db.VarChar(80) |
memberCode | member_code | String | @map("member_code") @db.VarChar(255) |
createdAt | created_at | DateTime | @default(now()) @map("created_at") @db.Timestamptz(6) |
deletedAt | deleted_at | DateTime? | @map("deleted_at") @db.Timestamptz(6) |
테이블 제약 @@index([memberCode, createdAt]) @@map("web_card")
60개 enum
상태·역할·분류처럼 DB 필드가 가질 수 있는 제한된 값 목록입니다.
AgreementType6 values
LEGAL_AGE TERMS PRIVACY MARKETING THIRD PROPOSAL
GenderType2 values
MALE FEMALE
AdminResumeStatus3 values
NONE GENERATE_REQUEST GENERATED
RoleType5 values
USER ADMIN LAWYER COMPANY_MANAGER LAWSCHOOL
GamePlayStatus4 values
PLAYING FINISHED INVALID ABANDONED
GamePlaySource2 values
OFFICIAL CHALLENGE
KakaoMessageChannel3 values
ALIMTALK FRIENDTALK BRAND_MESSAGE
KakaoMessagePurpose2 values
SERVICE MARKETING
KakaoNotificationType7 values
SCRAP_DEADLINE COMMUNITY JOB_STATUS JOB_DEADLINE JOB_APPLICATION ADMIN_MESSAGE VERIFICATION_RESULT
KakaoMessageStatus7 values
PENDING SCHEDULED SENDING SENT FAILED CANCELED SKIPPED
FileStatus4 values
PENDING SUCCESS FAIL APPROVAL_REQUESTED
FileType4 values
STATIC_IMAGE DYNAMIC_IMAGE DOCUMENT ALL
MemberFileProperty3 values
MEMBER_PROFILE MEMBER_PERSONAL_RESUME RESUME_IMPORT_SOURCE
VerificationStatus5 values
DRAFT PENDING APPROVED REJECTED DELETED
VerificationType3 values
LAWYER_CERTIFICATE LAWSCHOOL_CERTIFICATE COMPANY_MANAGER_CERTIFICATE
VerificationQualificationType5 values
JUDICIAL_TRAINING LAWYER_EXAMINATION FOREIGN_LAWYER LAWYER PATENT_ATTORNEY
CompanyRequestStatus5 values
NONE PENDING APPROVED REJECTED REQUESTED
CompanySizeType10 values
ENTERPRISE MID_SIZED SME SMALL VENTURE STARTUP ETC MICRO MEDIUM LARGE
CompanyFileProperty2 values
LOGO COVER
EmploymentType7 values
PERMANENT CONTRACT TRAINING PRACTICUM INTERN FULL_TIME PART_TIME
VisibleTo6 values
ALL LAWYER LAWSCHOOL USER ADMIN NONE
JdFileProperty3 values
ATTACHMENTS IMAGES OFFICE_IMAGES
ResumeActivityCategory5 values
AWARD PAPER BOOK LECTURE ETC
ResumeCareerEmploymentType7 values
PERMANENT CONTRACT INTERN FREELANCE OTHER FULL_TIME PART_TIME
ResumeCertCountry61 values
SOUTH_KOREA UNITED_STATES UNITED_KINGDOM JAPAN CHINA GERMANY FRANCE CANADA AUSTRALIA INDIA BRAZIL RUSSIA ITALY SPAIN MEXICO NETHERLANDS SWITZERLAND SWEDEN NORWAY DENMARK FINLAND BELGIUM AUSTRIA IRELAND PORTUGAL POLAND CZECH_REPUBLIC HUNGARY GREECE ROMANIA TURKEY SOUTH_AFRICA EGYPT NIGERIA KENYA SAUDI_ARABIA UNITED_ARAB_EMIRATES ISRAEL SINGAPORE MALAYSIA THAILAND INDONESIA PHILIPPINES VIETNAM TAIWAN NEW_ZEALAND ARGENTINA CHILE COLOMBIA PERU UKRAINE QATAR KUWAIT IRAN PAKISTAN BANGLADESH ETHIOPIA GHANA MOROCCO ALGERIA TUNISIA
ResumeDegreeType8 values
LAWSCHOOL MASTER DOCTOR PROFESSIONAL_MASTER PROFESSIONAL_DOCTOR ASSOCIATE BACHELOR DOCTORATE
ResumeGraduateType5 values
COMPLETION GRADUATION EXPECTANT_GRADUATION ATTENDING DROP_OUT
ResumeEducationType5 values
HIGH_SCHOOL COLLEGE UNIVERSITY GRADUATE_SCHOOL LAW_SCHOOL
ResumeFileProperty4 values
PROFILE ATTACHMENTS VERIFICATION_FILES RESUME_IMPORT_SOURCE
ResumeLanguageProficiency3 values
CONVERSATIONAL BUSINESS FLUENT
MilitaryRank20 values
PRIVATE PRIVATE_FIRST_CLASS CORPORAL SERGEANT STAFF_SERGEANT SERGEANT_FIRST_CLASS MASTER_SERGEANT COMMAND_SERGEANT_MAJOR WARRANT_OFFICER SECOND_LIEUTENANT FIRST_LIEUTENANT CAPTAIN MAJOR LIEUTENANT_COLONEL COLONEL BRIGADIER_GENERAL MAJOR_GENERAL LIEUTENANT_GENERAL GENERAL ETC
MilitaryServiceType4 values
SERVING FULFILLED UNFULFILLED EXEMPTED
MilitaryType11 values
JAG_OFFICER PUBLIC_SERVICE_LAWYER ARMY AIR_FORCE NAVY MARINE AUXILIARY_POLICE COMBAT_POLICE SOCIAL_SERVICE_PERSONNEL AUXILIARY_FIREMAN ETC
PostCategory6 values
NOTICE FREE INFORMATION LAWSCHOOL LAWYER INSIGHT
LawyerCompanyType4 values
LAW_FIRM PUBLIC ENTERPRISE ETC
PracticeArea4 values
LITIGATION ADVISORY CORPORATE COOPERATION
LawyerJdType4 values
LAWYER SEPARATE_REVENUE SECRET GOJOBS
NotificationCategory10 values
POST_COMMENT SCRAP_JOB_DESCRIPTION_CLOSE SCRAP_SPEC_UP_CLOSE JOB_DESCRIPTION_CLOSE JOB_DESCRIPTION_STATUS_APPROVED JOB_DESCRIPTION_STATUS_REJECTED JOB_DESCRIPTION_STATUS_PUBLISHED APPLICATION COMPANY_MEMBER_APPROVED COMPANY_MEMBER_REJECTED
NotificationTarget4 values
POST JOB_DESCRIPTION SPEC_UP COMPANY_MEMBER
ReportReason5 values
CURSE_WORD SPAM INAPPROPRIATE_CONTENT FALSEHOOD ETC
SpecUpCategory4 values
COMMITTEE_OR_EXTERNAL_POSITION PRACTICAL_TRAINING EDUCATION_OR_SEMINAR ETC
JobApplicationStatus3 values
COMPLETE CANCEL PENDING
SalaryStatisticsType6 values
OVERALL_AVERAGE RECENT_AVERAGE EXPERIENCE_1_2_YEARS EXPERIENCE_2_5_YEARS EXPERIENCE_5_10_YEARS EXPERIENCE_10_PLUS_YEARS
AutomationSourceType2 values
API CRAWLER
AutomationItemStatus5 values
NEW REVIEWED PUBLISHED SKIPPED FAILED
EmailCampaignStatus5 values
PENDING SENDING SENT FAILED SKIPPED
EmailCampaignType3 values
SERVICE_NOTICE CONSENTED_MARKETING EXTERNAL_OUTREACH
EmailCampaignBatchStatus8 values
DRAFT READY QUEUED SENDING STOP_REQUESTED COMPLETED PARTIAL_FAILURE FAILED
EmailRecipientSource5 values
MEMBER PASTE CSV EXTERNAL TEST
EmailRecipientProcessStatus6 values
EXCLUDED QUEUED PROCESSING PROVIDER_ACCEPTED ACCEPTANCE_UNKNOWN FINAL_FAILURE
EmailDeliveryStatus7 values
UNKNOWN DELAYED DELIVERED BOUNCED REJECTED RENDERING_FAILED COMPLAINED
EmailEngagementStatus4 values
UNCONFIRMED OPEN_DETECTED AUTOMATED_OPEN_SUSPECTED CLICK_DETECTED
EmailProviderType3 values
SES SMTP MOCK
EmailAttemptStatus5 values
PROCESSING ACCEPTED ACCEPTANCE_UNKNOWN RETRYABLE_FAILURE FINAL_FAILURE
EmailProviderEventType10 values
SEND DELIVERY BOUNCE COMPLAINT REJECT RENDERING_FAILURE DELIVERY_DELAY OPEN CLICK UNKNOWN
EmailMxProvider6 values
GOOGLE NAVER MICROSOFT KAKAO_DAUM OTHER UNKNOWN
EmailThrottleScope3 values
GLOBAL PROVIDER DOMAIN
EmailSuppressionReason5 values
UNSUBSCRIBED HARD_BOUNCE COMPLAINT ADMIN_BLOCK POLICY_BLOCK
EmailSuppressionSource5 values
PUBLIC_UNSUBSCRIBE SES_EVENT ADMIN MIGRATION POLICY
EmailCampaignAuditAction12 values
CSV_UPLOAD RECIPIENTS_CHANGED DRAFT_SAVED TEST_SENT CAMPAIGN_QUEUED STOP_REQUESTED FAILED_RECIPIENTS_RETRIED RESULTS_DOWNLOADED SUPPRESSION_ADDED SUPPRESSION_RELEASED RATE_SETTINGS_CHANGED THROTTLE_MANUALLY_RESUMED