Report

보고서 API

멘토링 활동 보고서를 작성, 조회, 수정하고 승인 현황을 확인할 수 있습니다. 자유 멘토링과 멘토 특강 보고서는 생성 시 파일 첨부가 필요하며, 정규 멘토링 보고서는 파일 없이 생성할 수 있습니다.

List

보고서 목록을 페이지 단위로 조회합니다. 제목 또는 작성자로 검색할 수 있습니다.

const { items, pagination } = await client.report.list()

Options

await client.report.list({
  page: 1,
  searchField: '0', // '0' (제목) | '1' (작성자)
  searchKeyword: '키워드',
})

Get Detail

특정 보고서의 상세 내용을 조회합니다.

const report = await client.report.get(123)

Create

보고서를 생성합니다. subject는 최소 10자, content는 최소 100자 이상이어야 합니다. 두 번째 인자는 첨부 파일 배열이며, 자유 멘토링(MRC010)과 멘토 특강(MRC020)에서는 필수이고 정규 멘토링(MRC990)에서는 생략할 수 있습니다.

import { readFile } from 'node:fs/promises'

await client.report.create(
  {
    menteeRegion: 'S', // 'S' (서울) | 'B' (부산)
    reportType: 'MRC010', // 'MRC010' (자유 멘토링) | 'MRC020' (멘토 특강) | 'MRC990' (정규 멘토링)
    progressDate: '2026-01-15',
    venue: 'Meeting Room A',
    attendanceCount: 3,
    attendanceNames: 'Trainee One, Trainee Two, Trainee Three',
    progressStartTime: '14:00',
    progressEndTime: '16:00',
    subject: '멘토링 주제 (최소 10자)',
    content: '멘토링 내용 (최소 100자) ...',
  },
  [
    {
      buffer: await readFile('/path/to/attachment.pdf'),
      name: 'attachment.pdf',
    },
  ],
)

// 정규 멘토링은 개설 승인 PDF 없이 생성 가능
await client.report.create({
  menteeRegion: 'S',
  reportType: 'MRC990',
  progressDate: '2026-01-15',
  teamNames: 'Team Alpha', // MRC990 requires the confirmed assigned team
  venue: 'Meeting Room A',
  attendanceCount: 2,
  attendanceNames: 'Trainee One, Trainee Two',
  progressStartTime: '14:00',
  progressEndTime: '16:00',
  subject: '정규 멘토링 주제 논의',
  content: '정규 멘토링 내용 (최소 100자) ...',
})

Update

변경할 필드만 전달합니다. 파일을 교체하려면 세 번째 인자로 새 파일 경로 또는 Buffer를 전달합니다.

await client.report.update(123, {
  subject: '수정된 주제',
  content: '수정된 내용 ...',
})

// 파일도 교체 가능
await client.report.update(123, { subject: '수정' }, '/path/to/new-file.pdf')

Approval List

보고서 승인 현황을 조회합니다. 월별 또는 보고서 유형별로 필터링할 수 있습니다.

const { items, pagination } = await client.report.approval()

await client.report.approval({
  page: 1,
  month: '01', // '01'-'12' or 'all'
  reportType: 'MRC010',
})