import { HttpStatus } from '@nestjs/common';

/**
 * 开发管理模块错误码
 * 基于 docs/modules/devtracker/08-error-codes.md 定义
 */
export const DEVTRACKER_ERROR_CODES = {
  ITEM_NOT_FOUND: {
    code: 'DEVTRACKER_ITEM_NOT_FOUND',
    message: '工作项不存在',
    httpStatus: HttpStatus.NOT_FOUND,
  },
  ITEM_PERMISSION_DENIED: {
    code: 'DEVTRACKER_ITEM_PERMISSION_DENIED',
    message: '无权限操作工作项',
    httpStatus: HttpStatus.FORBIDDEN,
  },
  ITEM_STATUS_INVALID: {
    code: 'DEVTRACKER_ITEM_STATUS_INVALID',
    message: '工作项状态流转不合法',
    httpStatus: HttpStatus.CONFLICT,
  },
  ITEM_PARENT_INVALID: {
    code: 'DEVTRACKER_ITEM_PARENT_INVALID',
    message: '父工作项不合法',
    httpStatus: HttpStatus.BAD_REQUEST,
  },
  ITEM_VALIDATION_FAILED: {
    code: 'DEVTRACKER_ITEM_VALIDATION_FAILED',
    message: '工作项参数校验失败',
    httpStatus: HttpStatus.UNPROCESSABLE_ENTITY,
  },
  RELEASE_NOTE_NOT_FOUND: {
    code: 'DEVTRACKER_RELEASE_NOTE_NOT_FOUND',
    message: '更新记录不存在',
    httpStatus: HttpStatus.NOT_FOUND,
  },
  RELEASE_NOTE_PERMISSION_DENIED: {
    code: 'DEVTRACKER_RELEASE_NOTE_PERMISSION_DENIED',
    message: '无权限操作更新记录',
    httpStatus: HttpStatus.FORBIDDEN,
  },
  RELEASE_NOTE_VALIDATION_FAILED: {
    code: 'DEVTRACKER_RELEASE_NOTE_VALIDATION_FAILED',
    message: '更新记录参数校验失败',
    httpStatus: HttpStatus.UNPROCESSABLE_ENTITY,
  },
  RELEASE_NOTE_CONFLICT: {
    code: 'DEVTRACKER_RELEASE_NOTE_CONFLICT',
    message: '更新记录版本冲突',
    httpStatus: HttpStatus.CONFLICT,
  },
};
