Database · Screen map · 2026-09-14

어떤 화면이 어떤 DB를 쓰는지

Prisma 코드에 정의된 80개 모델을 모두 펼쳐보고, user 화면별로 실제 API가 읽고 쓰는 핵심 모델을 바로 찾아갈 수 있습니다.

80Prisma 모델
60enum
7코드상 데이터 영역
7user 화면 묶음

중요: 80개는 현재 코드에 정의된 모델 수입니다. 운영 PostgreSQL에 실제 적용된 테이블 수나 각 테이블의 데이터 건수는 조회하지 않았습니다.

전체 관계

화면 → API → DB 영역

7 data domains
Screen mapping

화면별 DB 사용

읽기·쓰기는 해당 user 화면과 연결된 API 경로 기준입니다. admin 전용 기능은 전체 모델 목록에서 별도로 확인합니다.

A01

가입 · 로그인 · 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
M01

홈 · 통합검색

흐름도 보기 →

/ · /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
M02

채용정보 · 상세 · 지원

흐름도 보기 →

/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
M03

스펙업

흐름도 보기 →

/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
M04

커뮤니티

흐름도 보기 →

/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.ts
M05

PDF · 카드 도구

흐름도 보기 →

/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
M06

내 커리어 · 이력서 · 마이페이지

흐름도 보기 →

/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.ts
Full catalog

80개 모델 전체 목록

모델을 펼치면 실제 DB 테이블·컬럼명, Prisma 타입, 키·관계·기본값을 볼 수 있습니다.

user 핵심

회원 · 인증 · 약관

11개

계정, 역할, PASS·자격 심사, 약관, 회원 파일과 카카오 메시지 설정을 보관합니다.

user 핵심

회사 · 채용 · 이력서 공통

22개

회사와 공고의 공통 정보, 이력서 본문과 학력·경력·자격·첨부를 보관합니다.

user 핵심

커뮤니티 공통

3개

게시글·댓글·첨부의 공통 원본을 보관합니다.

user 핵심

변호사·로스쿨 user 업무

24개

직역 프로필, 공고 확장정보, 지원·스크랩, 커뮤니티 참여, 스펙업을 보관합니다.

운영 지원

콘텐츠 자동화

3개

외부 소스 수집, 항목 처리 상태와 스펙업·커뮤니티 게시 이력을 보관합니다.

간접 지원

행동 분석 · 신원 연결

3개

일별 활동, 익명·회원 행동 이벤트와 익명 신원의 회원 연결을 보관합니다.

admin·운영 지원

관리 · 단체메일 · 웹 카드

14개

관리자 활동, 이메일 캠페인·전송·억제·감사 기록과 홈 웹 카드를 보관합니다.

Agreementagreement 회원 · 인증 · 약관8 fields

화면 연결: A01

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
typetypeAgreementType?
versionversionInt
historieshistoriesAgreementHistory[]

테이블 제약 @@map("agreement")

Membermember 회원 · 인증 · 약관25 fields

화면 연결: A01 M04 M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
adminResumeStatusadmin_resume_statusAdminResumeStatus@default(NONE) @map("admin_resume_status")
birthdatebirthdateDateTime?@db.Date
ciciString?@db.VarChar(255)
codecodeString@unique @db.VarChar(255)
emailemailString?@db.VarChar(255)
gendergenderGenderType?
kakaoIdkakao_idBigInt?@map("kakao_id")
namenameString?@db.VarChar(255)
nicknamenicknameString?@db.VarChar(255)
notificationEnablednotification_enabledBoolean@default(false) @map("notification_enabled")
passwordpasswordString?@db.VarChar(255)
phonephoneString?@db.VarChar(255)
lastAccessAtlast_access_atDateTime?@map("last_access_at") @db.Timestamptz(6)
rolesrolesMemberRole[]
filesfilesMemberFile[]
verificationsverificationsVerification[]
agreementHistoriesagreementHistoriesAgreementHistory[]
analyticsEventsanalyticsEventsAnalyticsEvent[]
identityLinksidentityLinksIdentityLink[]
gamePlaysgamePlaysGamePlay[]

테이블 제약 @@unique([email, deletedAt], name: "idx_email_deleted_at") @@unique([nickname, deletedAt], name: "idx_nickname_deleted_at") @@map("member")

GamePlaygame_play 회원 · 인증 · 약관18 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
memberIdmember_idBigInt@map("member_id")
gameCodegame_codeString@map("game_code") @db.VarChar(50)
statusstatusGamePlayStatus@default(PLAYING)
sourcesourceGamePlaySource@default(OFFICIAL)
scorescoreInt@default(0)
maxTiermax_tierInt@default(1) @map("max_tier")
watermelonCountwatermelon_countInt@default(0) @map("watermelon_count")
seedseedInt
durationMsduration_msInt?@map("duration_ms")
proofproofJson?
validvalidBoolean@default(true)
invalidReasoninvalid_reasonString?@map("invalid_reason") @db.VarChar(255)
startedAtstarted_atDateTime@default(now()) @map("started_at") @db.Timestamptz
finishedAtfinished_atDateTime?@map("finished_at") @db.Timestamptz
createdAtcreated_atDateTime@default(now()) @map("created_at") @db.Timestamptz
updatedAtupdated_atDateTime@updatedAt @map("updated_at") @db.Timestamptz
membermemberMember@relation(fields: [memberId], references: [id])

테이블 제약 @@index([memberId, gameCode, startedAt]) @@index([gameCode, status, score]) @@index([startedAt]) @@map("game_play")

KakaoNotificationPreferencekakao_notification_preference 회원 · 인증 · 약관6 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
typetypeKakaoNotificationType
enabledenabledBoolean@default(true)

테이블 제약 @@unique([memberCode, type]) @@map("kakao_notification_preference")

KakaoMessageBatchkakao_message_batch 회원 · 인증 · 약관15 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
titletitleString@db.VarChar(255)
contentcontentString@db.Text
channelchannelKakaoMessageChannel
purposepurposeKakaoMessagePurpose
templateCodetemplate_codeString?@map("template_code") @db.VarChar(255)
scheduledAtscheduled_atDateTime?@map("scheduled_at") @db.Timestamp(6)
statusstatusKakaoMessageStatus@default(PENDING)
totalCounttotal_countInt@default(0) @map("total_count")
successCountsuccess_countInt@default(0) @map("success_count")
failCountfail_countInt@default(0) @map("fail_count")
messagesmessagesKakaoMessageLog[]

테이블 제약 @@map("kakao_message_batch")

KakaoMessageLogkakao_message_log 회원 · 인증 · 약관21 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
batchIdbatch_idBigInt?@map("batch_id")
memberCodemember_codeString@map("member_code") @db.VarChar(255)
phonephoneString@db.VarChar(32)
typetypeKakaoNotificationType
channelchannelKakaoMessageChannel
purposepurposeKakaoMessagePurpose
templateCodetemplate_codeString?@map("template_code") @db.VarChar(255)
titletitleString?@db.VarChar(255)
contentcontentString@db.Text
statusstatusKakaoMessageStatus@default(PENDING)
scheduledAtscheduled_atDateTime?@map("scheduled_at") @db.Timestamp(6)
sentAtsent_atDateTime?@map("sent_at") @db.Timestamp(6)
providerMsgIdprovider_msg_idString?@map("provider_msg_id") @db.VarChar(255)
failureCodefailure_codeString?@map("failure_code") @db.VarChar(255)
failureReasonfailure_reasonString?@map("failure_reason") @db.Text
dedupeKeydedupe_keyString?@unique @map("dedupe_key") @db.VarChar(255)
metadatametadataJson?
batchbatchKakaoMessageBatch?@relation(fields: [batchId], references: [id])

테이블 제약 @@index([status, scheduledAt]) @@index([memberCode, createdAt]) @@map("kakao_message_log")

AgreementHistoryagreement_history 회원 · 인증 · 약관10 fields

화면 연결: A01

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
isAgreedis_agreedBoolean?@map("is_agreed")
agreementIdagreement_idBigInt@map("agreement_id")
memberIdmember_idBigInt@map("member_id")
agreementagreementAgreement@relation(fields: [agreementId], references: [id])
membermemberMember@relation(fields: [memberId], references: [id])

테이블 제약 @@map("agreement_history")

MemberFilemember_file 회원 · 인증 · 약관14 fields

화면 연결: A01 M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
contentTypecontent_typeString?@map("content_type") @db.VarChar(255)
namenameString?@db.VarChar(255)
s3paths3pathString?@db.VarChar(255)
sizesizeBigInt?
statusstatusFileStatus?
typetypeFileType?
propertypropertyMemberFileProperty?
memberIdmember_idBigInt@map("member_id")
membermemberMember@relation(fields: [memberId], references: [id])

테이블 제약 @@map("member_file")

MemberRolemember_role 회원 · 인증 · 약관8 fields

화면 연결: A01

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
roleTyperole_typeRoleType@map("role_type")
memberIdmember_idBigInt@map("member_id")
membermemberMember@relation(fields: [memberId], references: [id])

테이블 제약 @@map("member_role")

Verificationverification 회원 · 인증 · 약관15 fields

화면 연결: A01 M02 M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
lawschoolNamelawschool_nameString?@map("lawschool_name") @db.VarChar(255)
acquireDateacquire_dateDateTime?@map("acquire_date") @db.Date
qualificationTypequalification_typeVerificationQualificationType?@map("qualification_type")
roundroundInt?
rejectReasonreject_reasonString?@map("reject_reason") @db.VarChar(255)
statusstatusVerificationStatus?
typetypeVerificationType?
memberIdmember_idBigInt@map("member_id")
membermemberMember@relation(fields: [memberId], references: [id])
filesfilesVerificationFile[]

테이블 제약 @@map("verification")

VerificationFileverification_file 회원 · 인증 · 약관14 fields

화면 연결: A01

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
contentTypecontent_typeString?@map("content_type") @db.VarChar(255)
namenameString?@db.VarChar(255)
s3paths3pathString?@db.VarChar(255)
sizesizeBigInt?
statusstatusFileStatus?
typetypeFileType?
propertypropertyString?@db.VarChar(255)
verificationIdverification_idBigInt@map("verification_id")
verificationverificationVerification@relation(fields: [verificationId], references: [id])

테이블 제약 @@map("verification_file")

Industryindustry 회사 · 채용 · 이력서 공통10 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
codecodeString?@db.VarChar(255)
descriptiondescriptionString?@db.VarChar(255)
namenameString?@db.VarChar(255)
companiescompaniesCompany[]
resumeCareersresumeCareersResumeCareer[]

테이블 제약 @@map("industry")

MemberCareermember_career 회사 · 채용 · 이력서 공통13 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
companyNamecompany_nameString?@map("company_name") @db.VarChar(255)
issueNumberissue_numberString?@map("issue_number") @db.VarChar(255)
issuedDateissued_dateDateTime?@map("issued_date") @db.Date
joinMemberTypejoin_member_typeString?@map("join_member_type") @db.VarChar(255)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
namenameString?@db.VarChar(255)
periodperiodBytes?
resumeCareersresumeCareersResumeCareer[]

테이블 제약 @@map("member_career")

Resumeresume 회사 · 채용 · 이력서 공통29 fields

화면 연결: M02 M05 M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
coverLettercover_letterString?@map("cover_letter") @db.Text
chineseCharacterschinese_charactersString?@map("chinese_characters") @db.VarChar(255)
emailemailString?@db.VarChar(255)
phonephoneString?@db.VarChar(255)
englishNameenglish_nameString?@map("english_name") @db.VarChar(255)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
summarysummaryString?@db.VarChar(255)
titletitleString?@db.VarChar(255)
modulesmodulesJson?@default("[]") @db.JsonB
highlightshighlightsJson?@default("[]") @db.JsonB
outputSettingsoutput_settingsJson?@default("{}") @map("output_settings") @db.JsonB
aiCapabilityai_capabilityJson?@default("{}") @map("ai_capability") @db.JsonB
activitiesactivitiesResumeActivity[]
careerscareersResumeCareer[]
certificationscertificationsResumeCertification[]
educationseducationsResumeEducation[]
filesfilesResumeFile[]
languageslanguagesResumeLanguage[]
qualificationsqualificationsResumeQualification[]
lawyerResumelawyerResumeLawyerResume?
barExambarExamResumeBarExam?
judicialTrainingjudicialTrainingResumeJudicialTraining?
resumeLinksresumeLinksResumeLink[]
resumePracticeAreasresumePracticeAreasResumePracticeArea[]

테이블 제약 @@map("resume")

ResumeBarExamresume_bar_exam 회사 · 채용 · 이력서 공통11 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
resumeIdresume_idBigInt@unique @map("resume_id")
sessionsessionInt
civilLawcivil_lawFloat?@map("civil_law")
criminalLawcriminal_lawFloat?@map("criminal_law")
publicLawpublic_lawFloat?@map("public_law")
electiveSubjectelective_subjectString?@map("elective_subject") @db.VarChar(32)
electiveelectiveFloat?
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
resumeresumeResume@relation(fields: [resumeId], references: [id])

테이블 제약 @@map("resume_bar_exam")

ResumeJudicialTrainingresume_judicial_training 회사 · 채용 · 이력서 공통10 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
resumeIdresume_idBigInt@unique @map("resume_id")
cohortcohortInt
scorescoreFloat?
scoreTotalscore_totalFloat?@map("score_total")
rankrankInt?
rankTotalrank_totalInt?@map("rank_total")
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
resumeresumeResume@relation(fields: [resumeId], references: [id])

테이블 제약 @@map("resume_judicial_training")

ResumePracticeArearesume_practice_area 회사 · 채용 · 이력서 공통7 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
resumeIdresume_idBigInt@map("resume_id")
specializationspecializationString@db.VarChar(100)
registrationDateregistration_dateString@map("registration_date") @db.VarChar(20)
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
resumeresumeResume@relation(fields: [resumeId], references: [id])

테이블 제약 @@map("resume_practice_area")

Companycompany 회사 · 채용 · 이력서 공통24 fields

화면 연결: M02

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
businessNumberbusiness_numberString?@map("business_number") @db.VarChar(255)
avgAnnualSalaryavg_annual_salaryDecimal?@map("avg_annual_salary") @db.Decimal
valuevalueDecimal?@db.Decimal
employeeCountemployee_countInt?@map("employee_count")
foundationDatefoundation_dateDateTime?@map("foundation_date") @db.Date
hasLaborUnionhas_labor_unionBoolean?@map("has_labor_union")
namenameString?@db.VarChar(255)
requestStatusrequest_statusCompanyRequestStatus?@map("request_status")
sizeTypesize_typeCompanySizeType?@map("size_type")
summarysummaryString?@db.Text
webSiteUrlweb_site_urlString?@map("web_site_url") @db.VarChar(255)
welfarewelfareString?@db.Text
industryIdindustry_idBigInt?@map("industry_id")
ceoNameceo_nameString?@map("ceo_name") @db.VarChar(255)
industryindustryIndustry?@relation(fields: [industryId], references: [id])
addressesaddressesCompanyAddress[]
filesfilesCompanyFile[]
membersmembersCompanyMember[]
jobDescriptionsjobDescriptionsJobDescription[]

테이블 제약 @@unique([businessNumber, deletedAt], name: "idx_business_number_deleted_at") @@map("company")

CompanyAddresscompany_address 회사 · 채용 · 이력서 공통19 fields

화면 연결: M02

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
addressDetailaddress_detailString?@map("address_detail") @db.VarChar(255)
buildingNamebuilding_nameString?@map("building_name") @db.VarChar(255)
cityNamecity_nameString?@map("city_name") @db.VarChar(255)
districtNamedistrict_nameString?@map("district_name") @db.VarChar(255)
jibunAddressjibun_addressString?@map("jibun_address") @db.VarChar(255)
parcelNumberparcel_numberString?@map("parcel_number") @db.VarChar(255)
postalCodepostal_codeString?@map("postal_code") @db.VarChar(255)
roadAddressroad_addressString?@map("road_address") @db.VarChar(255)
townNametown_nameString?@map("town_name") @db.VarChar(255)
villageNamevillage_nameString?@map("village_name") @db.VarChar(255)
xxFloat?
yyFloat?
companyIdcompany_idBigInt@map("company_id")
companycompanyCompany@relation(fields: [companyId], references: [id])

테이블 제약 @@map("company_address")

CompanyFilecompany_file 회사 · 채용 · 이력서 공통14 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
contentTypecontent_typeString?@map("content_type") @db.VarChar(255)
namenameString?@db.VarChar(255)
s3paths3pathString?@db.VarChar(255)
sizesizeBigInt?
statusstatusFileStatus?
typetypeFileType?
propertypropertyCompanyFileProperty?
companyIdcompany_idBigInt@map("company_id")
companycompanyCompany@relation(fields: [companyId], references: [id])

테이블 제약 @@map("company_file")

CompanyMembercompany_member 회사 · 채용 · 이력서 공통11 fields

화면 연결: M02

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
departmentdepartmentString?@db.VarChar(255)
extensionNumberextension_numberString?@map("extension_number") @db.VarChar(255)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
positionpositionString?@db.VarChar(255)
companyIdcompany_idBigInt@map("company_id")
companycompanyCompany@relation(fields: [companyId], references: [id])

테이블 제약 @@map("company_member")

JobDescriptionjob_description 회사 · 채용 · 이력서 공통55 fields

화면 연결: M01 M02

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
benefitbenefitString?@db.Text
certificationcertificationString?@db.VarChar(255)
conversionRateconversion_rateDecimal?@map("conversion_rate") @db.Decimal
educationRequirementCollegeeducation_requirement_collegeBoolean?@map("education_requirement_college")
educationRequirementGraduateSchooleducation_requirement_graduate_schoolBoolean?@map("education_requirement_graduate_school")
educationRequirementHighSchooleducation_requirement_high_schoolBoolean?@map("education_requirement_high_school")
educationRequirementIrrelevanteducation_requirement_irrelevantBoolean?@map("education_requirement_irrelevant")
educationRequirementLawSchooleducation_requirement_law_schoolBoolean?@map("education_requirement_law_school")
educationRequirementMastereducation_requirement_masterBoolean?@map("education_requirement_master")
educationRequirementPhdeducation_requirement_phdBoolean?@map("education_requirement_phd")
employmentTypeemployment_typeEmploymentType?@map("employment_type")
experienceRequirementLevelexperience_requirement_levelString?@map("experience_requirement_level") @db.VarChar(20)
experienceRequirementMaxexperience_requirement_maxInt?@map("experience_requirement_max")
experienceRequirementMinexperience_requirement_minInt?@map("experience_requirement_min")
experienceRequirementNoneexperience_requirement_noneBoolean?@map("experience_requirement_none")
experienceRequirementIrrelevantexperience_requirement_irrelevantBoolean?@map("experience_requirement_irrelevant")
hiringPeriodEndDatehiring_period_end_dateDateTime?@map("hiring_period_end_date") @db.Timestamp(6)
hiringPeriodIsPermanenthiring_period_is_permanentBoolean?@map("hiring_period_is_permanent")
hiringPeriodIsAsaphiring_period_is_asapBoolean?@map("hiring_period_is_asap")
hiringPeriodStartDatehiring_period_start_dateDateTime?@map("hiring_period_start_date") @db.Timestamp(6)
hiringProcessDocumenthiring_process_documentBoolean?@map("hiring_process_document")
hiringProcessFirstInterviewhiring_process_first_interviewBoolean?@map("hiring_process_first_interview")
hiringProcessSecondInterviewhiring_process_second_interviewBoolean?@map("hiring_process_second_interview")
hiringProcessTesthiring_process_testBoolean?@map("hiring_process_test")
hiringProcessEtchiring_process_etcBoolean?@map("hiring_process_etc")
hiringProcessStephiring_process_stepString?@map("hiring_process_step") @db.Text
hiringProcessRequiredDocumentshiring_process_required_documentsString?@map("hiring_process_required_documents") @db.Text
hiringProcessOptionalDocumentshiring_process_optional_documentsString?@map("hiring_process_optional_documents") @db.Text
applicationMethodapplication_methodString?@map("application_method") @db.VarChar(255)
applicationEndpointapplication_endpointString?@map("application_endpoint") @db.Text
hiringVolumeCounthiring_volume_countInt?@map("hiring_volume_count")
hiringVolumeIsUndecidedhiring_volume_is_undecidedBoolean?@map("hiring_volume_is_undecided")
positionpositionString?@db.VarChar(255)
preferredQualificationspreferred_qualificationsString?@map("preferred_qualifications") @db.Text
requestStatusrequest_statusCompanyRequestStatus?@map("request_status")
salaryDescriptionsalary_descriptionString?@map("salary_description") @db.VarChar(255)
salaryMaxsalary_maxDecimal?@map("salary_max") @db.Decimal
salaryMinsalary_minDecimal?@map("salary_min") @db.Decimal
salaryMinMonthlysalary_min_monthlyDecimal?@map("salary_min_monthly") @db.Decimal
signingBonussigning_bonusString?@map("signing_bonus") @db.VarChar(255)
taskDescriptiontask_descriptionString?@map("task_description") @db.Text
titletitleString?@db.VarChar(255)
visibleTovisible_toVisibleTo?@map("visible_to")
companyIdcompany_idBigInt@map("company_id")
isPinnedis_pinnedBoolean?@default(false) @map("is_pinned")
recruitmentDetailrecruitment_detailString?@map("recruitment_detail") @db.Text
companycompanyCompany@relation(fields: [companyId], references: [id])
filesfilesJobDescriptionFile[]
addressesaddressesJobAddress[]
lawyerJobDescriptionlawyerJobDescriptionLawyerJobDescription?

테이블 제약 @@map("job_description")

JobDescriptionActivityjob_description_activity 회사 · 채용 · 이력서 공통7 fields

화면 연결: M02

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
jobDescriptionIdjob_description_idBigInt@map("job_description_id")
actionactionString@db.VarChar(20) // CREATE | UPDATE | DELETE | CLOSE
sourcesourceString@db.VarChar(20) // BIZ | ADMIN | AUTOMATION
actorMemberCodeactor_member_codeString?@map("actor_member_code") @db.VarChar(255)
changeschangesJson?// UPDATE diff { fields: [{label,before,after}] } / 그 외 { title }
createdAtcreated_atDateTime@default(now()) @map("created_at") @db.Timestamp(6)

테이블 제약 @@index([jobDescriptionId]) @@map("job_description_activity")

JobDescriptionFilejob_description_file 회사 · 채용 · 이력서 공통14 fields

화면 연결: M02

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
contentTypecontent_typeString?@map("content_type") @db.VarChar(255)
namenameString?@db.VarChar(255)
s3paths3pathString?@db.VarChar(255)
sizesizeBigInt?
statusstatusFileStatus?
typetypeFileType?
propertypropertyJdFileProperty?
jobDescriptionIdjob_description_idBigInt@map("job_description_id")
jobDescriptionjobDescriptionJobDescription@relation(fields: [jobDescriptionId], references: [id])

테이블 제약 @@map("job_description_file")

JobAddressjob_address 회사 · 채용 · 이력서 공통19 fields

화면 연결: M02

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
addressDetailaddress_detailString?@map("address_detail") @db.VarChar(255)
buildingNamebuilding_nameString?@map("building_name") @db.VarChar(255)
cityNamecity_nameString?@map("city_name") @db.VarChar(255)
districtNamedistrict_nameString?@map("district_name") @db.VarChar(255)
jibunAddressjibun_addressString?@map("jibun_address") @db.VarChar(255)
parcelNumberparcel_numberString?@map("parcel_number") @db.VarChar(255)
postalCodepostal_codeString?@map("postal_code") @db.VarChar(255)
roadAddressroad_addressString?@map("road_address") @db.VarChar(255)
townNametown_nameString?@map("town_name") @db.VarChar(255)
villageNamevillage_nameString?@map("village_name") @db.VarChar(255)
xxFloat?
yyFloat?
jobDescriptionIdjob_description_idBigInt@map("job_description_id")
jobDescriptionjobDescriptionJobDescription@relation(fields: [jobDescriptionId], references: [id])

테이블 제약 @@map("job_address")

ResumeActivityresume_activity 회사 · 채용 · 이력서 공통13 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
categorycategoryResumeActivityCategory?
descriptiondescriptionString?@db.Text
namenameString?@db.VarChar(255)
organizerorganizerString?@db.VarChar(255)
endDateend_dateDateTime?@map("end_date") @db.Date
startDatestart_dateDateTime?@map("start_date") @db.Date
resumeIdresume_idBigInt@map("resume_id")
resumeresumeResume@relation(fields: [resumeId], references: [id])

테이블 제약 @@map("resume_activity")

ResumeCareerresume_career 회사 · 채용 · 이력서 공통22 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
valuevalueDecimal?@db.Decimal
departmentdepartmentString?@db.VarChar(255)
employmentTypeemployment_typeResumeCareerEmploymentType?@map("employment_type")
isCurrentlyEmployedis_currently_employedBoolean?@map("is_currently_employed")
isVerifiedis_verifiedBoolean?@map("is_verified")
namenameString?@db.VarChar(255)
endDateend_dateDateTime?@map("end_date") @db.Date
startDatestart_dateDateTime?@map("start_date") @db.Date
positionpositionString?@db.VarChar(255)
reasonForLeavingreason_for_leavingString?@map("reason_for_leaving") @db.VarChar(255)
responsibilitiesresponsibilitiesString?@db.Text
industryIdindustry_idBigInt?@map("industry_id")
careerIdcareer_idBigInt?@map("career_id")
resumeIdresume_idBigInt@map("resume_id")
industryindustryIndustry?@relation(fields: [industryId], references: [id])
careercareerMemberCareer?@relation(fields: [careerId], references: [id])
resumeresumeResume@relation(fields: [resumeId], references: [id])

테이블 제약 @@map("resume_career")

ResumeCertificationresume_certification 회사 · 채용 · 이력서 공통13 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
acquiredDateacquired_dateString?@map("acquired_date") @db.VarChar(255)
codecodeString?@db.VarChar(255)
countrycountryResumeCertCountry?
statestateString?@db.VarChar(255)
issuerissuerString?@db.VarChar(255)
namenameString?@db.VarChar(255)
resumeIdresume_idBigInt@map("resume_id")
resumeresumeResume@relation(fields: [resumeId], references: [id])

테이블 제약 @@map("resume_certification")

ResumeEducationresume_education 회사 · 채용 · 이력서 공통20 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
alternativeExamYearalternative_exam_yearInt?@map("alternative_exam_year")
degreeTypedegree_typeResumeDegreeType?@map("degree_type")
descriptiondescriptionString?@db.Text
gradegradeDecimal?@db.Decimal
graduateTypegraduate_typeResumeGraduateType?@map("graduate_type")
isAlternativeExamis_alternative_examBoolean?@map("is_alternative_exam")
isTransferredis_transferredBoolean?@map("is_transferred")
majormajorString?@db.VarChar(255)
maxGrademax_gradeDecimal?@map("max_grade") @db.Decimal
namenameString?@db.VarChar(255)
endDateend_dateDateTime?@map("end_date") @db.Date
startDatestart_dateDateTime?@map("start_date") @db.Date
typetypeResumeEducationType?
resumeIdresume_idBigInt@map("resume_id")
resumeresumeResume@relation(fields: [resumeId], references: [id])

테이블 제약 @@map("resume_education")

ResumeFileresume_file 회사 · 채용 · 이력서 공통15 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
contentTypecontent_typeString?@map("content_type") @db.VarChar(255)
namenameString?@db.VarChar(255)
s3paths3pathString?@db.VarChar(255)
sizesizeBigInt?
statusstatusFileStatus?
typetypeFileType?
propertypropertyResumeFileProperty?
sortOrdersort_orderInt?@map("sort_order")
resumeIdresume_idBigInt@map("resume_id")
resumeresumeResume@relation(fields: [resumeId], references: [id])

테이블 제약 @@map("resume_file")

ResumeLanguageresume_language 회사 · 채용 · 이력서 공통13 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
acquiredDateacquired_dateString?@map("acquired_date") @db.VarChar(255)
issuerissuerString?@db.VarChar(255)
languagelanguageString?@db.VarChar(255)
proficiencyLevelproficiency_levelResumeLanguageProficiency?@map("proficiency_level")
scorescoreString?@db.VarChar(255)
testNametest_nameString?@map("test_name") @db.VarChar(255)
resumeIdresume_idBigInt@map("resume_id")
resumeresumeResume@relation(fields: [resumeId], references: [id])

테이블 제약 @@map("resume_language")

ResumeQualificationresume_qualification 회사 · 채용 · 이력서 공통19 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
hasAgreedToPrivacyhas_agreed_to_privacyBoolean?@map("has_agreed_to_privacy")
isMilitaryis_militaryBoolean?@map("is_military")
isPatriotis_patriotBoolean?@map("is_patriot")
isSubsidyis_subsidyBoolean?@map("is_subsidy")
endDateend_dateDateTime?@map("end_date") @db.Date
startDatestart_dateDateTime?@map("start_date") @db.Date
militaryRankmilitary_rankMilitaryRank?@map("military_rank")
militaryReasonmilitary_reasonString?@map("military_reason") @db.VarChar(255)
militaryServiceTypemilitary_service_typeMilitaryServiceType?@map("military_service_type")
militaryTypemilitary_typeMilitaryType?@map("military_type")
patriotReasonpatriot_reasonString?@map("patriot_reason") @db.VarChar(255)
subsidyTypesubsidy_typeString?@map("subsidy_type") @db.VarChar(255)
resumeIdresume_idBigInt@map("resume_id")
resumeresumeResume@relation(fields: [resumeId], references: [id])

테이블 제약 @@map("resume_qualification")

Postpost 커뮤니티 공통14 fields

화면 연결: M01 M04

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
categorycategoryPostCategory?
contentcontentString?@db.Text
memberCodemember_codeString@map("member_code") @db.VarChar(255)
titletitleString?@db.VarChar(255)
sourceUrlsource_urlString?@map("source_url") @db.VarChar(2048)
sourceNamesource_nameString?@map("source_name") @db.VarChar(255)
commentscommentsComment[]
filesfilesPostFile[]
lawyerPostlawyerPostLawyerPost?

테이블 제약 @@map("post")

Commentcomment 커뮤니티 공통13 fields

화면 연결: M04

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
contentcontentString?@db.VarChar(1000)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
parentIdparent_idBigInt?@map("parent_id")
postIdpost_idBigInt@map("post_id")
parentparentComment?@relation("CommentToComment", fields: [parentId], references: [id])
childrenchildrenComment[]@relation("CommentToComment")
postpostPost@relation(fields: [postId], references: [id])
lawyerCommentlawyerCommentLawyerComment?

테이블 제약 @@map("comment")

PostFilepost_file 커뮤니티 공통15 fields

화면 연결: M04

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
contentTypecontent_typeString?@map("content_type") @db.VarChar(255)
namenameString?@db.VarChar(255)
s3paths3pathString?@db.VarChar(255)
sizesizeBigInt?
statusstatusFileStatus?
typetypeFileType?
propertypropertyString?@db.VarChar(255)
sortOrdersort_orderInt@default(0) @map("sort_order")
postIdpost_idBigInt@map("post_id")
postpostPost@relation(fields: [postId], references: [id])

테이블 제약 @@map("post_file")

Lawyerlawyer 변호사·로스쿨 user 업무9 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
practiceAreaspracticeAreasLawyerPracticeArea[]
specializationsspecializationsLawyerSpecialization[]
resumesresumesLawyerResume[]

테이블 제약 @@unique([memberCode, deletedAt], name: "idx_lawyer_member_code_deleted_at") @@map("lawyer")

LawyerCommentlawyer_comment 변호사·로스쿨 user 업무9 fields

화면 연결: M04

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
commentIdcomment_idBigInt@unique @map("comment_id")
likeCountlike_countInt@default(0) @map("like_count")
commentcommentComment@relation(fields: [commentId], references: [id])
likeslikesLawyerCommentLike[]

테이블 제약 @@map("lawyer_comment")

LawyerCompanylawyer_company 변호사·로스쿨 user 업무8 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
companyIdcompany_idBigInt@map("company_id")
typetypeLawyerCompanyType?
specializationsspecializationsLawyerCompanySpecialization[]

테이블 제약 @@map("lawyer_company")

LawyerCompanySpecializationlawyer_company_specialization 변호사·로스쿨 user 업무3 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
companyIdcompany_idBigInt@map("company_id")
specializationspecializationString@db.VarChar(255)
lawyerCompanylawyerCompanyLawyerCompany@relation(fields: [companyId], references: [id])

테이블 제약 @@id([companyId, specialization]) @@map("lawyer_company_specialization")

LawyerJobDescriptionlawyer_job_description 변호사·로스쿨 user 업무25 fields

화면 연결: M01 M02

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
applyClickCountapply_click_countInt@default(0) @map("apply_click_count")
applyCountapply_countInt@default(0) @map("apply_count")
jobDescriptionIdjob_description_idBigInt@unique @map("job_description_id")
scrapCountscrap_countInt@default(0) @map("scrap_count")
isPartnerRegistrationis_partner_registrationBoolean?@map("is_partner_registration")
leaseDepositlease_depositDecimal?@map("lease_deposit") @db.Decimal
leaseHasAdditionalCostlease_has_additional_costBoolean?@map("lease_has_additional_cost")
leaseMonthlyRentlease_monthly_rentDecimal?@map("lease_monthly_rent") @db.Decimal
endDateend_dateDateTime?@map("end_date") @db.Timestamp(6)
startDatestart_dateDateTime?@map("start_date") @db.Timestamp(6)
obligationPeriodDescriptionobligation_period_descriptionString?@map("obligation_period_description") @db.VarChar(255)
officeDescriptionoffice_descriptionString?@map("office_description") @db.Text
repaymentValuerepayment_valueDecimal?@map("repayment_value") @db.Decimal
typetypeLawyerJdType?
viewCountview_countInt@default(0) @map("view_count")
jobDescriptionjobDescriptionJobDescription@relation(fields: [jobDescriptionId], references: [id])
practiceAreaspracticeAreasLawyerJdPracticeArea[]
specializationsspecializationsLawyerJdSpecialization[]
applicationsapplicationsJobApplication[]
scrapsscrapsJobDescriptionScrap[]

테이블 제약 @@map("lawyer_job_description")

LawyerJdPracticeArealawyer_job_description_practice_area 변호사·로스쿨 user 업무3 fields

화면 연결: M02

필드DB 컬럼타입키·관계·기본값
jobDescriptionIdjob_description_idBigInt@map("job_description_id")
practiceAreapractice_areaPracticeArea@map("practice_area")
lawyerJobDescriptionlawyerJobDescriptionLawyerJobDescription@relation(fields: [jobDescriptionId], references: [id])

테이블 제약 @@id([jobDescriptionId, practiceArea]) @@map("lawyer_job_description_practice_area")

LawyerJdSpecializationlawyer_job_description_specialization 변호사·로스쿨 user 업무3 fields

화면 연결: M02

필드DB 컬럼타입키·관계·기본값
jobDescriptionIdjob_description_idBigInt@map("job_description_id")
specializationspecializationString@db.VarChar(255)
lawyerJobDescriptionlawyerJobDescriptionLawyerJobDescription@relation(fields: [jobDescriptionId], references: [id])

테이블 제약 @@id([jobDescriptionId, specialization]) @@map("lawyer_job_description_specialization")

LawyerPostlawyer_post 변호사·로스쿨 user 업무10 fields

화면 연결: M01 M04

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
likeCountlike_countInt@default(0) @map("like_count")
postIdpost_idBigInt@unique @map("post_id")
viewCountview_countInt@default(0) @map("view_count")
postpostPost@relation(fields: [postId], references: [id])
likeslikesLawyerPostLike[]

테이블 제약 @@map("lawyer_post")

Notificationnotification 변호사·로스쿨 user 업무11 fields

화면 연결: M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
categorycategoryNotificationCategory?
hasReadhas_readBoolean@default(false) @map("has_read")
memberCodemember_codeString@map("member_code") @db.VarChar(255)
targettargetNotificationTarget?
targetIdtarget_idBigInt?@map("target_id")
titletitleString?@db.VarChar(255)

테이블 제약 @@map("notification")

Reportreport 변호사·로스쿨 user 업무8 fields

화면 연결: M04

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
commentIdcomment_idBigInt?@map("comment_id")
postIdpost_idBigInt?@map("post_id")
reasonreasonReportReason?

테이블 제약 @@map("report")

SalaryStatisticsalary_statistic 변호사·로스쿨 user 업무7 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
averageSalaryaverage_salaryDecimal?@map("average_salary") @db.Decimal
statisticsTypestatistics_typeSalaryStatisticsType?@map("statistics_type")

테이블 제약 @@map("salary_statistic")

JobApplicationjob_application 변호사·로스쿨 user 업무14 fields

화면 연결: M02 M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
hasReadhas_readBoolean@default(false) @map("has_read")
memberCodemember_codeString@map("member_code") @db.VarChar(255)
resumeresumeJson?
statusstatusJobApplicationStatus?
totalCareerDurationInMonthstotal_career_duration_in_monthsInt?@map("total_career_duration_in_months")
jobDescriptionIdjob_description_idBigInt@map("job_description_id")
lawyerJobDescriptionlawyerJobDescriptionLawyerJobDescription@relation(fields: [jobDescriptionId], references: [id])
filesfilesJobApplicationFile[]
resumeBundlesresumeBundlesResumeBundle[]

테이블 제약 @@map("job_application")

JobApplicationFilejob_application_file 변호사·로스쿨 user 업무15 fields

화면 연결: M02 M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
contentTypecontent_typeString?@map("content_type") @db.VarChar(255)
namenameString?@db.VarChar(255)
s3paths3pathString?@db.VarChar(255)
sizesizeBigInt?
statusstatusFileStatus?
typetypeFileType?
propertypropertyString?@db.VarChar(255)
sortOrdersort_orderInt?@map("sort_order")
jobApplicationIdjob_application_idBigInt@map("job_application_id")
jobApplicationjobApplicationJobApplication@relation(fields: [jobApplicationId], references: [id])

테이블 제약 @@map("job_application_file")

ResumeBundleresume_bundle 변호사·로스쿨 user 업무11 fields

화면 연결: M02 M05 M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
memberCodemember_codeString@map("member_code") @db.VarChar(255)
namenameString@db.VarChar(255)
s3paths3pathString@db.VarChar(255)
sizesizeBigInt?
jobApplicationIdjob_application_idBigInt?@map("job_application_id")
sourceResumeIdsource_resume_idBigInt?@map("source_resume_id")
sourceResumeUpdatedAtsource_resume_updated_atDateTime?@map("source_resume_updated_at") @db.Timestamp(6)
createdAtcreated_atDateTime@map("created_at") @db.Timestamp(6)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
jobApplicationjobApplicationJobApplication?@relation(fields: [jobApplicationId], references: [id], onDelete: SetNull)

테이블 제약 @@index([memberCode], map: "resume_bundle_member_code_idx") @@map("resume_bundle")

JobDescriptionScrapjob_description_scrap 변호사·로스쿨 user 업무8 fields

화면 연결: M02 M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
lawyerJobDescriptionIdlawyer_job_description_idBigInt@map("lawyer_job_description_id")
lawyerJobDescriptionlawyerJobDescriptionLawyerJobDescription@relation(fields: [lawyerJobDescriptionId], references: [id])

테이블 제약 @@map("job_description_scrap")

LawyerCommentLikelawyer_comment_like 변호사·로스쿨 user 업무8 fields

화면 연결: M04

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
lawyerCommentIdlawyer_comment_idBigInt@map("lawyer_comment_id")
lawyerCommentlawyerCommentLawyerComment@relation(fields: [lawyerCommentId], references: [id])

테이블 제약 @@map("lawyer_comment_like")

LawyerPostLikelawyer_post_like 변호사·로스쿨 user 업무8 fields

화면 연결: M04

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
lawyerPostIdlawyer_post_idBigInt@map("lawyer_post_id")
lawyerPostlawyerPostLawyerPost@relation(fields: [lawyerPostId], references: [id])

테이블 제약 @@map("lawyer_post_like")

LawyerPracticeArealawyer_practice_area 변호사·로스쿨 user 업무3 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
lawyerIdlawyer_idBigInt@map("lawyer_id")
practiceAreapractice_areaPracticeArea@map("practice_area")
lawyerlawyerLawyer@relation(fields: [lawyerId], references: [id])

테이블 제약 @@id([lawyerId, practiceArea]) @@map("lawyer_practice_area")

LawyerResumelawyer_resume 변호사·로스쿨 user 업무13 fields

화면 연결: M02 M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
valuevalueDecimal?@db.Decimal
salaryTypesalary_typeString?@map("salary_type") @db.VarChar(20)
isNegotiableis_negotiableBoolean?@map("is_negotiable")
isDefaultis_defaultBoolean?@map("is_default")
resumeIdresume_idBigInt@unique @map("resume_id")
lawyerIdlawyer_idBigInt@map("lawyer_id")
resumeresumeResume@relation(fields: [resumeId], references: [id])
lawyerlawyerLawyer@relation(fields: [lawyerId], references: [id])

테이블 제약 @@map("lawyer_resume")

LawyerSpecializationlawyer_specialization 변호사·로스쿨 user 업무3 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
lawyerIdlawyer_idBigInt@map("lawyer_id")
specializationspecializationString@db.VarChar(255)
lawyerlawyerLawyer@relation(fields: [lawyerId], references: [id])

테이블 제약 @@id([lawyerId, specialization]) @@map("lawyer_specialization")

SpecUpspec_up 변호사·로스쿨 user 업무18 fields

화면 연결: M01 M03

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
applyClickCountapply_click_countInt@default(0) @map("apply_click_count")
applyTypeapply_typeString?@map("apply_type") @db.VarChar(255)
categorycategorySpecUpCategory?
descriptiondescriptionString?@db.Text
externalUrlexternal_urlString?@map("external_url") @db.VarChar(255)
endedAtended_atDateTime?@map("ended_at") @db.Timestamp(6)
startedAtstarted_atDateTime?@map("started_at") @db.Timestamp(6)
scrapCountscrap_countInt@default(0) @map("scrap_count")
titletitleString?@db.VarChar(255)
viewCountview_countInt@default(0) @map("view_count")
addressaddressSpecUpAddress?
filesfilesSpecUpFile[]
scrapsscrapsSpecUpScrap[]

테이블 제약 @@map("spec_up")

SpecUpAddressspec_up_address 변호사·로스쿨 user 업무19 fields

화면 연결: M03

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
addressDetailaddress_detailString?@map("address_detail") @db.VarChar(255)
buildingNamebuilding_nameString?@map("building_name") @db.VarChar(255)
cityNamecity_nameString?@map("city_name") @db.VarChar(255)
districtNamedistrict_nameString?@map("district_name") @db.VarChar(255)
jibunAddressjibun_addressString?@map("jibun_address") @db.VarChar(255)
parcelNumberparcel_numberString?@map("parcel_number") @db.VarChar(255)
postalCodepostal_codeString?@map("postal_code") @db.VarChar(255)
roadAddressroad_addressString?@map("road_address") @db.VarChar(255)
townNametown_nameString?@map("town_name") @db.VarChar(255)
villageNamevillage_nameString?@map("village_name") @db.VarChar(255)
xxFloat?
yyFloat?
specUpIdspec_up_idBigInt@unique @map("spec_up_id")
specUpspecUpSpecUp@relation(fields: [specUpId], references: [id])

테이블 제약 @@map("spec_up_address")

SpecUpFilespec_up_file 변호사·로스쿨 user 업무14 fields

화면 연결: M03

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
contentTypecontent_typeString?@map("content_type") @db.VarChar(255)
namenameString?@db.VarChar(255)
s3paths3pathString?@db.VarChar(255)
sizesizeBigInt?
statusstatusFileStatus?
typetypeFileType?
propertypropertyString?@db.VarChar(255)
specUpIdspec_up_idBigInt@map("spec_up_id")
specUpspecUpSpecUp@relation(fields: [specUpId], references: [id])

테이블 제약 @@map("spec_up_file")

SpecUpScrapspec_up_scrap 변호사·로스쿨 user 업무8 fields

화면 연결: M03 M06

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
specUpIdspec_up_idBigInt@map("spec_up_id")
specUpspecUpSpecUp@relation(fields: [specUpId], references: [id])

테이블 제약 @@unique([specUpId, memberCode]) @@map("spec_up_scrap")

AutomationSourceautomation_source 콘텐츠 자동화12 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
slugslugString@unique @db.VarChar(64)
namenameString@db.VarChar(128)
typetypeAutomationSourceType
isActiveis_activeBoolean@default(true) @map("is_active")
autoPublishauto_publishBoolean@default(false) @map("auto_publish")
autoPublishLawyerKeywordauto_publish_lawyer_keywordBoolean@default(false) @map("auto_publish_lawyer_keyword")
lastRunAtlast_run_atDateTime?@map("last_run_at") @db.Timestamp(6)
lastErrorlast_errorString?@map("last_error") @db.Text
createdAtcreated_atDateTime?@default(now()) @map("created_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@updatedAt @map("updated_at") @db.Timestamp(6)
itemsitemsAutomationItem[]

테이블 제약 @@map("automation_source")

AutomationItemautomation_item 콘텐츠 자동화15 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
sourceIdsource_idBigInt@map("source_id")
dedupKeydedup_keyString@map("dedup_key") @db.VarChar(128)
titletitleString?@db.VarChar(500)
categoryHintcategory_hintString?@map("category_hint") @db.VarChar(64)
rawPayloadraw_payloadJson@map("raw_payload")
normalizednormalizedJson
statusstatusAutomationItemStatus@default(NEW)
failReasonfail_reasonString?@map("fail_reason") @db.Text
collectedAtcollected_atDateTime?@default(now()) @map("collected_at") @db.Timestamp(6)
reviewedAtreviewed_atDateTime?@map("reviewed_at") @db.Timestamp(6)
publishedAtpublished_atDateTime?@map("published_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@updatedAt @map("updated_at") @db.Timestamp(6)
sourcesourceAutomationSource@relation(fields: [sourceId], references: [id])
publishLogspublishLogsAutomationPublishLog[]

테이블 제약 @@unique([sourceId, dedupKey]) @@index([status, collectedAt]) @@index([sourceId, status]) @@map("automation_item")

AutomationPublishLogautomation_publish_log 콘텐츠 자동화7 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
itemIditem_idBigInt@map("item_id")
targettargetString@db.VarChar(32)
targetIdtarget_idBigInt@map("target_id")
publishedBypublished_byString@map("published_by") @db.VarChar(255)
publishedAtpublished_atDateTime@default(now()) @map("published_at") @db.Timestamp(6)
itemitemAutomationItem@relation(fields: [itemId], references: [id])

테이블 제약 @@index([itemId]) @@map("automation_publish_log")

MemberDailyActivitymember_daily_activity 행동 분석 · 신원 연결3 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
memberCodemember_codeString@map("member_code") @db.VarChar(255)
activityDateactivity_dateDateTime@map("activity_date") @db.Date
firstSeenAtfirst_seen_atDateTime@default(now()) @map("first_seen_at") @db.Timestamptz(6)

테이블 제약 @@id([memberCode, activityDate]) @@index([activityDate]) @@map("member_daily_activity")

AnalyticsEventanalytics_event 행동 분석 · 신원 연결10 fields

화면 연결: A01 M05

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
anonymousIdanonymous_idString@map("anonymous_id") @db.Uuid
memberIdmember_idBigInt?@map("member_id")
sessionIdsession_idString@map("session_id") @db.Uuid
eventNameevent_nameString@map("event_name") @db.VarChar(64)
propertiespropertiesJson@default("{}")
userAgentuser_agentString?@map("user_agent") @db.VarChar(512)
ipHaship_hashString?@map("ip_hash") @db.VarChar(64)
occurredAtoccurred_atDateTime@default(now()) @map("occurred_at") @db.Timestamptz(6)
membermemberMember?@relation(fields: [memberId], references: [id], onDelete: SetNull)

테이블 제약 @@index([occurredAt]) @@index([memberId, occurredAt]) @@index([sessionId]) @@index([eventName, occurredAt]) @@index([anonymousId, occurredAt]) @@map("analytics_event")

AdminActivityadmin_activity 관리 · 단체메일 · 웹 카드9 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
actionactionString@db.VarChar(64)
targetTypetarget_typeString@map("target_type") @db.VarChar(32)
targetIdtarget_idString@map("target_id") @db.VarChar(64)
actorMemberCodeactor_member_codeString?@map("actor_member_code") @db.VarChar(255)
sourcesourceString@default("ADMIN") @db.VarChar(16)
reasonreasonString?
metametaJson?
createdAtcreated_atDateTime@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 관리 · 단체메일 · 웹 카드43 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
subjectsubjectString@db.VarChar(255)
headingheadingString@db.VarChar(255)
bodyTextbody_textString@map("body_text") @db.Text
buttonTextbutton_textString?@map("button_text") @db.VarChar(255)
buttonUrlbutton_urlString?@map("button_url") @db.VarChar(2048)
imageUrlimage_urlString?@map("image_url") @db.VarChar(2048)
isAdis_adBoolean@default(false) @map("is_ad")
targetGroupstarget_groupsJson@map("target_groups")
statusstatusEmailCampaignStatus@default(PENDING)
totalCounttotal_countInt@default(0) @map("total_count")
successCountsuccess_countInt@default(0) @map("success_count")
failCountfail_countInt@default(0) @map("fail_count")
campaignTypecampaign_typeEmailCampaignType@default(SERVICE_NOTICE) @map("campaign_type")
batchStatusbatch_statusEmailCampaignBatchStatus@default(DRAFT) @map("batch_status")
senderNamesender_nameString?@map("sender_name") @db.VarChar(120)
senderEmailsender_emailString?@map("sender_email") @db.VarChar(255)
replyToreply_toString?@map("reply_to") @db.VarChar(255)
htmlBodyhtml_bodyString?@map("html_body") @db.Text
personalizationDefaultspersonalization_defaultsJson?@map("personalization_defaults")
deliveryRateSettingsdelivery_rate_settingsJson?@map("delivery_rate_settings")
providerproviderEmailProviderType@default(SES)
idempotencyKeyidempotency_keyString?@unique @map("idempotency_key") @db.VarChar(120)
inputCountinput_countInt@default(0) @map("input_count")
excludedCountexcluded_countInt@default(0) @map("excluded_count")
finalTargetCountfinal_target_countInt@default(0) @map("final_target_count")
acceptedCountaccepted_countInt@default(0) @map("accepted_count")
deliveredCountdelivered_countInt@default(0) @map("delivered_count")
bouncedCountbounced_countInt@default(0) @map("bounced_count")
complainedCountcomplained_countInt@default(0) @map("complained_count")
openDetectedCountopen_detected_countInt@default(0) @map("open_detected_count")
isTestis_testBoolean@default(false) @map("is_test")
policyVersionpolicy_versionString?@map("policy_version") @db.VarChar(80)
queuedAtqueued_atDateTime?@map("queued_at") @db.Timestamptz(6)
startedAtstarted_atDateTime?@map("started_at") @db.Timestamptz(6)
finishedAtfinished_atDateTime?@map("finished_at") @db.Timestamptz(6)
stopRequestedAtstop_requested_atDateTime?@map("stop_requested_at") @db.Timestamptz(6)
logslogsEmailCampaignLog[]
eventseventsEmailProviderEvent[]
auditsauditsEmailCampaignAuditLog[]

테이블 제약 @@index([batchStatus, queuedAt]) @@map("email_campaign_batch")

EmailCampaignLogemail_campaign_log 관리 · 단체메일 · 웹 카드50 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
createdAtcreated_atDateTime?@map("created_at") @db.Timestamp(6)
updatedAtupdated_atDateTime?@map("updated_at") @db.Timestamp(6)
batchIdbatch_idBigInt@map("batch_id")
memberCodemember_codeString@map("member_code") @db.VarChar(255)
emailemailString@db.VarChar(255)
statusstatusEmailCampaignStatus@default(PENDING)
failureCodefailure_codeString?@map("failure_code") @db.VarChar(255)
failureReasonfailure_reasonString?@map("failure_reason") @db.Text
sentAtsent_atDateTime?@map("sent_at") @db.Timestamp(6)
retryCountretry_countInt@default(0) @map("retry_count")
nextAttemptAtnext_attempt_atDateTime?@map("next_attempt_at") @db.Timestamp(6)
dedupeKeydedupe_keyString?@unique @map("dedupe_key") @db.VarChar(255)
normalizedEmailnormalized_emailString?@map("normalized_email") @db.VarChar(255)
sourcesourceEmailRecipientSource@default(MEMBER)
memberNamemember_nameString?@map("member_name") @db.VarChar(120)
companyNamecompany_nameString?@map("company_name") @db.VarChar(255)
contactNamecontact_nameString?@map("contact_name") @db.VarChar(120)
acquisitionSourceacquisition_sourceString?@map("acquisition_source") @db.VarChar(500)
contactMemocontact_memoString?@map("contact_memo") @db.Text
registeredByregistered_byString?@map("registered_by") @db.VarChar(255)
registeredAtregistered_atDateTime?@map("registered_at") @db.Timestamptz(6)
personalizationpersonalizationJson?
processStatusprocess_statusEmailRecipientProcessStatus@default(QUEUED) @map("process_status")
deliveryStatusdelivery_statusEmailDeliveryStatus@default(UNKNOWN) @map("delivery_status")
engagementStatusengagement_statusEmailEngagementStatus@default(UNCONFIRMED) @map("engagement_status")
exclusionReasonexclusion_reasonEmailSuppressionReason?@map("exclusion_reason")
exclusionDetailexclusion_detailString?@map("exclusion_detail") @db.VarChar(500)
providerMessageIdprovider_message_idString?@unique @map("provider_message_id") @db.VarChar(255)
trackingIdtracking_idString?@unique @map("tracking_id") @db.Uuid
claimedAtclaimed_atDateTime?@map("claimed_at") @db.Timestamptz(6)
leaseUntillease_untilDateTime?@map("lease_until") @db.Timestamptz(6)
lockedBylocked_byString?@map("locked_by") @db.VarChar(120)
acceptedAtaccepted_atDateTime?@map("accepted_at") @db.Timestamptz(6)
failedAtfailed_atDateTime?@map("failed_at") @db.Timestamptz(6)
firstDeliveredAtfirst_delivered_atDateTime?@map("first_delivered_at") @db.Timestamptz(6)
lastDeliveredAtlast_delivered_atDateTime?@map("last_delivered_at") @db.Timestamptz(6)
firstOpenAtfirst_open_atDateTime?@map("first_open_at") @db.Timestamptz(6)
lastOpenAtlast_open_atDateTime?@map("last_open_at") @db.Timestamptz(6)
firstClickAtfirst_click_atDateTime?@map("first_click_at") @db.Timestamptz(6)
lastClickAtlast_click_atDateTime?@map("last_click_at") @db.Timestamptz(6)
lastEventAtlast_event_atDateTime?@map("last_event_at") @db.Timestamptz(6)
recipientDomainrecipient_domainString?@map("recipient_domain") @db.VarChar(255)
mxProvidermx_providerEmailMxProvider@default(UNKNOWN) @map("mx_provider")
deliveryGroupdelivery_groupString@default("UNKNOWN") @map("delivery_group") @db.VarChar(80)
dispatchOrderdispatch_orderInt@default(0) @map("dispatch_order")
batchbatchEmailCampaignBatch@relation(fields: [batchId], references: [id])
attemptsattemptsEmailCampaignAttempt[]
eventseventsEmailProviderEvent[]
unsubscribeTokensunsubscribeTokensEmailUnsubscribeToken[]

테이블 제약 @@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 관리 · 단체메일 · 웹 카드12 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
recipientIdrecipient_idBigInt@map("recipient_id")
attemptNoattempt_noInt@map("attempt_no")
providerproviderEmailProviderType
statusstatusEmailAttemptStatus
providerMessageIdprovider_message_idString?@map("provider_message_id") @db.VarChar(255)
failureCodefailure_codeString?@map("failure_code") @db.VarChar(255)
failureReasonfailure_reasonString?@map("failure_reason") @db.VarChar(1000)
startedAtstarted_atDateTime@default(now()) @map("started_at") @db.Timestamptz(6)
finishedAtfinished_atDateTime?@map("finished_at") @db.Timestamptz(6)
recipientrecipientEmailCampaignLog@relation(fields: [recipientId], references: [id])
eventseventsEmailProviderEvent[]

테이블 제약 @@unique([recipientId, attemptNo]) @@index([providerMessageId]) @@map("email_campaign_attempt")

EmailProviderEventemail_provider_event 관리 · 단체메일 · 웹 카드20 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
providerEventIdprovider_event_idString@unique @map("provider_event_id") @db.VarChar(255)
providerMessageIdprovider_message_idString?@map("provider_message_id") @db.VarChar(255)
batchIdbatch_idBigInt?@map("batch_id")
recipientIdrecipient_idBigInt?@map("recipient_id")
attemptIdattempt_idBigInt?@map("attempt_id")
typetypeEmailProviderEventType
occurredAtoccurred_atDateTime@map("occurred_at") @db.Timestamptz(6)
receivedAtreceived_atDateTime@default(now()) @map("received_at") @db.Timestamptz(6)
isAutomatedis_automatedBoolean@default(false) @map("is_automated")
rawSubsetraw_subsetJson?@map("raw_subset")
unknownReasonunknown_reasonString?@map("unknown_reason") @db.VarChar(500)
recipientDomainrecipient_domainString?@map("recipient_domain") @db.VarChar(255)
mxProvidermx_providerEmailMxProvider?@map("mx_provider")
delayTypedelay_typeString?@map("delay_type") @db.VarChar(80)
smtpStatusCodesmtp_status_codeString?@map("smtp_status_code") @db.VarChar(30)
diagnosticCodediagnostic_codeString?@map("diagnostic_code") @db.VarChar(500)
batchbatchEmailCampaignBatch?@relation(fields: [batchId], references: [id])
recipientrecipientEmailCampaignLog?@relation(fields: [recipientId], references: [id])
attemptattemptEmailCampaignAttempt?@relation(fields: [attemptId], references: [id])

테이블 제약 @@index([providerMessageId]) @@index([recipientId, occurredAt]) @@index([mxProvider, occurredAt]) @@index([recipientDomain, occurredAt]) @@map("email_provider_event")

EmailMxCacheemail_mx_cache 관리 · 단체메일 · 웹 카드6 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
domaindomainString@id @db.VarChar(255)
providerproviderEmailMxProvider
mxHostsmx_hostsJson@map("mx_hosts")
resolvedAtresolved_atDateTime@map("resolved_at") @db.Timestamptz(6)
expiresAtexpires_atDateTime@map("expires_at") @db.Timestamptz(6)
lastErrorlast_errorString?@map("last_error") @db.VarChar(500)

테이블 제약 @@index([expiresAt]) @@map("email_mx_cache")

EmailDeliveryThrottleStateemail_delivery_throttle_state 관리 · 단체메일 · 웹 카드12 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
scopescopeEmailThrottleScope
groupKeygroup_keyString@map("group_key") @db.VarChar(255)
effectiveMultipliereffective_multiplierFloat@default(1) @map("effective_multiplier")
nextAllowedAtnext_allowed_atDateTime?@map("next_allowed_at") @db.Timestamptz(6)
pauseUntilpause_untilDateTime?@map("pause_until") @db.Timestamptz(6)
pauseLevelpause_levelInt@default(0) @map("pause_level")
reasonreasonString?@db.VarChar(500)
lastSignalAtlast_signal_atDateTime?@map("last_signal_at") @db.Timestamptz(6)
lastHealthyAtlast_healthy_atDateTime?@map("last_healthy_at") @db.Timestamptz(6)
updatedByupdated_byString?@map("updated_by") @db.VarChar(255)
updatedAtupdated_atDateTime@updatedAt @map("updated_at") @db.Timestamptz(6)

테이블 제약 @@unique([scope, groupKey]) @@index([pauseUntil]) @@map("email_delivery_throttle_state")

EmailDeliveryRateSettingemail_delivery_rate_setting 관리 · 단체메일 · 웹 카드7 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
globalRateglobal_rateFloat@map("global_rate")
providerRatesprovider_ratesJson@map("provider_rates")
domainRatedomain_rateFloat@map("domain_rate")
concurrentRequestsconcurrent_requestsInt@map("concurrent_requests")
changedBychanged_byString@map("changed_by") @db.VarChar(255)
createdAtcreated_atDateTime@default(now()) @map("created_at") @db.Timestamptz(6)

테이블 제약 @@index([createdAt]) @@map("email_delivery_rate_setting")

EmailEventIngestFailureemail_event_ingest_failure 관리 · 단체메일 · 웹 카드6 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
queueMessageIdqueue_message_idString@unique @map("queue_message_id") @db.VarChar(255)
failureCountfailure_countInt@default(1) @map("failure_count")
lastErrorlast_errorString@map("last_error") @db.VarChar(1000)
firstFailedAtfirst_failed_atDateTime@default(now()) @map("first_failed_at") @db.Timestamptz(6)
lastFailedAtlast_failed_atDateTime@default(now()) @map("last_failed_at") @db.Timestamptz(6)

테이블 제약 @@index([lastFailedAt]) @@map("email_event_ingest_failure")

EmailSuppressionEntryemail_suppression_entry 관리 · 단체메일 · 웹 카드13 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
emailemailString@db.VarChar(255)
normalizedEmailnormalized_emailString@map("normalized_email") @db.VarChar(255)
campaignTypecampaign_typeEmailCampaignType@map("campaign_type")
reasonreasonEmailSuppressionReason
sourcesourceEmailSuppressionSource
notenoteString?@db.VarChar(500)
activeactiveBoolean@default(true)
createdBycreated_byString?@map("created_by") @db.VarChar(255)
createdAtcreated_atDateTime@default(now()) @map("created_at") @db.Timestamptz(6)
releasedByreleased_byString?@map("released_by") @db.VarChar(255)
releasedAtreleased_atDateTime?@map("released_at") @db.Timestamptz(6)
historieshistoriesEmailSuppressionHistory[]

테이블 제약 @@unique([normalizedEmail, campaignType]) @@index([active, reason]) @@map("email_suppression_entry")

EmailSuppressionHistoryemail_suppression_history 관리 · 단체메일 · 웹 카드9 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
suppressionIdsuppression_idBigInt@map("suppression_id")
actionactionString@db.VarChar(30)
reasonreasonEmailSuppressionReason
sourcesourceEmailSuppressionSource
notenoteString?@db.VarChar(500)
actorCodeactor_codeString?@map("actor_code") @db.VarChar(255)
createdAtcreated_atDateTime@default(now()) @map("created_at") @db.Timestamptz(6)
suppressionsuppressionEmailSuppressionEntry@relation(fields: [suppressionId], references: [id])

테이블 제약 @@index([suppressionId, createdAt]) @@map("email_suppression_history")

EmailUnsubscribeTokenemail_unsubscribe_token 관리 · 단체메일 · 웹 카드7 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
tokenHashtoken_hashString@unique @map("token_hash") @db.Char(64)
recipientIdrecipient_idBigInt@map("recipient_id")
expiresAtexpires_atDateTime@map("expires_at") @db.Timestamptz(6)
usedAtused_atDateTime?@map("used_at") @db.Timestamptz(6)
createdAtcreated_atDateTime@default(now()) @map("created_at") @db.Timestamptz(6)
recipientrecipientEmailCampaignLog@relation(fields: [recipientId], references: [id])

테이블 제약 @@index([recipientId]) @@map("email_unsubscribe_token")

EmailCampaignAuditLogemail_campaign_audit_log 관리 · 단체메일 · 웹 카드8 fields

화면 연결: 직접 연결 없음 · 운영/admin 또는 간접 지원

필드DB 컬럼타입키·관계·기본값
ididBigInt@id @default(autoincrement())
batchIdbatch_idBigInt?@map("batch_id")
actionactionEmailCampaignAuditAction
actorCodeactor_codeString@map("actor_code") @db.VarChar(255)
targetCounttarget_countInt?@map("target_count")
metadatametadataJson?
createdAtcreated_atDateTime@default(now()) @map("created_at") @db.Timestamptz(6)
batchbatchEmailCampaignBatch?@relation(fields: [batchId], references: [id])

테이블 제약 @@index([batchId, createdAt]) @@index([actorCode, createdAt]) @@map("email_campaign_audit_log")

WebCardweb_card 관리 · 단체메일 · 웹 카드8 fields

화면 연결: M01

필드DB 컬럼타입키·관계·기본값
codecodeString@id @db.VarChar(16)
themethemeString@db.VarChar(32)
titletitleString@db.VarChar(80)
messagemessageString@db.VarChar(400)
sendersenderString@db.VarChar(80)
memberCodemember_codeString@map("member_code") @db.VarChar(255)
createdAtcreated_atDateTime@default(now()) @map("created_at") @db.Timestamptz(6)
deletedAtdeleted_atDateTime?@map("deleted_at") @db.Timestamptz(6)

테이블 제약 @@index([memberCode, createdAt]) @@map("web_card")

Enums

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