create table tb_batch_job_info
(
    JOB_ID            varchar(36)                             not null comment '작업 ID (UUID) - 배치 작업의 고유 식별자'
        primary key,
    JOB_NM          varchar(200)                            not null comment '작업 이름 - 배치 작업의 이름 (사용자가 정의)',
    JOB_GROUP         varchar(200)                            not null comment '작업 그룹 - 배치 작업의 그룹 (논리적 분류)',
    JOB_CLASS         varchar(250)                            not null comment '작업 클래스 - 실제 작업을 수행할 Java 클래스의 전체 경로',
    CRON_EXPRESSION   varchar(200)                            not null comment 'Cron 표현식 - 작업 실행 스케줄 정의 (예: "0 0 2 * * ?" - 매일 새벽 2시)',
    JOB_DC            varchar(500)                            null comment '작업 설명 - 배치 작업에 대한 상세 설명',
    STATUS_CD            varchar(20) default 'ACTIVE'            not null comment '상태 (ACTIVE, PAUSED, DELETED) - 작업의 현재 상태',
    LAST_EXECUTION_ID varchar(36)                             null comment '마지막 실행 ID - 가장 최근에 실행된 배치 작업의 실행 ID',
    REG_DTTM          datetime    default current_timestamp() not null comment '등록 일시',
    MDFCN_DTTM        datetime    default current_timestamp() not null on update current_timestamp() comment '수정 일시 - 작업 정보 수정 시점 (자동 업데이트)',
    constraint UK_BATCH_JOB_NM_GROUP
        unique (JOB_NM, JOB_GROUP) comment '작업 이름+그룹 유니크 제약 - 동일한 이름과 그룹 조합 방지'
)
    comment '배치 작업 정보 저장 테이블 - 배치 작업의 기본 정보와 스케줄링 설정 관리';

create index IDX_BATCH_JOB_INFO_STATUS_CD
    on tb_batch_job_info (STATUS_CD)
    comment '상태 인덱스 - 상태별 조회 성능 향상';

