package kr.itn.itnhub.review;

/**
 * 권리확인 게시물 한 건. {@code A:V, X, Y} 열이 그대로 대응한다({@code W}는 원본 시트의
 * 빈 열이라 컬럼이 없다). 조사원 영역(site_name..surveyor_note)은 항상 파일이 최신값을
 * 덮어쓰고, 변호사 영역(openable..needs_processing)은 {@link #webEditedAt}이 null일 때만
 * 파일이 덮어쓴다 - 자세한 병합 정책은 {@code ReviewItemMapper.xml}의 upsertFromFile 참고.
 */
public class ReviewItem {

    private Long id;
    private Long orgId;
    private int seq;

    // 게시물 정보(조사원) - 재업로드 시 항상 파일 값으로 갱신
    private String siteName;
    private String category;
    private String boardPath;
    private String boardName;
    private String postTitle;
    private String url;
    private String postRegistered;
    private String producedDate;
    private String publishedDate;
    private String hasAttachment;
    private String koglAttached;
    private String koglType;
    private String aiType;
    private String surveyorNote;

    // 권리확인(변호사) - webEditedAt이 null일 때만 재업로드가 덮어씀
    private String openable;
    private String reviewMajor;
    private String reviewMinor;
    private String reviewResult;
    private String judgedKoglType;
    private String judgedAiType;
    private String opinion;
    private String lawyerNote;
    private String needsProcessing;

    /** null이면 아직 웹에서 변호사 판정을 수정한 적이 없다는 뜻이다(재업로드 병합 판단 기준). */
    private Long webEditedAt;
    private long createdAt;
    private long updatedAt;

    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    public Long getOrgId() { return orgId; }
    public void setOrgId(Long orgId) { this.orgId = orgId; }

    public int getSeq() { return seq; }
    public void setSeq(int seq) { this.seq = seq; }

    public String getSiteName() { return siteName; }
    public void setSiteName(String siteName) { this.siteName = siteName; }

    public String getCategory() { return category; }
    public void setCategory(String category) { this.category = category; }

    public String getBoardPath() { return boardPath; }
    public void setBoardPath(String boardPath) { this.boardPath = boardPath; }

    public String getBoardName() { return boardName; }
    public void setBoardName(String boardName) { this.boardName = boardName; }

    public String getPostTitle() { return postTitle; }
    public void setPostTitle(String postTitle) { this.postTitle = postTitle; }

    public String getUrl() { return url; }
    public void setUrl(String url) { this.url = url; }

    public String getPostRegistered() { return postRegistered; }
    public void setPostRegistered(String postRegistered) { this.postRegistered = postRegistered; }

    public String getProducedDate() { return producedDate; }
    public void setProducedDate(String producedDate) { this.producedDate = producedDate; }

    public String getPublishedDate() { return publishedDate; }
    public void setPublishedDate(String publishedDate) { this.publishedDate = publishedDate; }

    public String getHasAttachment() { return hasAttachment; }
    public void setHasAttachment(String hasAttachment) { this.hasAttachment = hasAttachment; }

    public String getKoglAttached() { return koglAttached; }
    public void setKoglAttached(String koglAttached) { this.koglAttached = koglAttached; }

    public String getKoglType() { return koglType; }
    public void setKoglType(String koglType) { this.koglType = koglType; }

    public String getAiType() { return aiType; }
    public void setAiType(String aiType) { this.aiType = aiType; }

    public String getSurveyorNote() { return surveyorNote; }
    public void setSurveyorNote(String surveyorNote) { this.surveyorNote = surveyorNote; }

    public String getOpenable() { return openable; }
    public void setOpenable(String openable) { this.openable = openable; }

    public String getReviewMajor() { return reviewMajor; }
    public void setReviewMajor(String reviewMajor) { this.reviewMajor = reviewMajor; }

    public String getReviewMinor() { return reviewMinor; }
    public void setReviewMinor(String reviewMinor) { this.reviewMinor = reviewMinor; }

    public String getReviewResult() { return reviewResult; }
    public void setReviewResult(String reviewResult) { this.reviewResult = reviewResult; }

    public String getJudgedKoglType() { return judgedKoglType; }
    public void setJudgedKoglType(String judgedKoglType) { this.judgedKoglType = judgedKoglType; }

    public String getJudgedAiType() { return judgedAiType; }
    public void setJudgedAiType(String judgedAiType) { this.judgedAiType = judgedAiType; }

    public String getOpinion() { return opinion; }
    public void setOpinion(String opinion) { this.opinion = opinion; }

    public String getLawyerNote() { return lawyerNote; }
    public void setLawyerNote(String lawyerNote) { this.lawyerNote = lawyerNote; }

    public String getNeedsProcessing() { return needsProcessing; }
    public void setNeedsProcessing(String needsProcessing) { this.needsProcessing = needsProcessing; }

    public Long getWebEditedAt() { return webEditedAt; }
    public void setWebEditedAt(Long webEditedAt) { this.webEditedAt = webEditedAt; }

    public long getCreatedAt() { return createdAt; }
    public void setCreatedAt(long createdAt) { this.createdAt = createdAt; }

    public long getUpdatedAt() { return updatedAt; }
    public void setUpdatedAt(long updatedAt) { this.updatedAt = updatedAt; }
}
