openapi: 3.0.3
info:
  title: 方案计划文档管理系统 API
  version: 1.3.0
  description: DMS第一阶段接口；Q2-B统一方案、直属子方案和已挂载附件的更新时间范围检索。
servers:
  - url: /
paths:
  /api/v1/health:
    get:
      operationId: getDmsHealth
      summary: DMS健康检查
      security: []
      parameters:
        - $ref: './components/parameters.yaml#/XRequestId'
      responses:
        '200':
          $ref: './components/responses.yaml#/HealthSuccess'
        '500':
          $ref: './components/responses.yaml#/InternalError'
  /api/v1/auth/login:
    $ref: './paths/auth.yaml#/Login'
  /api/v1/auth/logout:
    $ref: './paths/auth.yaml#/Logout'
  /api/v1/users/me:
    $ref: './paths/users.yaml#/CurrentUser'
  /api/v1/organizations/tree:
    $ref: './paths/organizations.yaml#/OrganizationTree'
  /api/v1/users:
    $ref: './paths/users.yaml#/Users'
  /api/v1/config/ui-dictionaries:
    $ref: './paths/configuration.yaml#/UiDictionaries'
  /api/v1/categories/tree:
    $ref: './paths/categories.yaml#/CategoryTree'
  /api/v1/categories:
    $ref: './paths/categories.yaml#/Categories'
  /api/v1/categories/{id}:
    $ref: './paths/categories.yaml#/Category'
  /api/v1/documents:
    $ref: './paths/documents.yaml#/Documents'
  /api/v1/documents/{id}:
    $ref: './paths/documents.yaml#/Document'
  /api/v1/documents/batch-import:
    $ref: './paths/documents.yaml#/DocumentBatchImport'
  /api/v1/documents/{id}/preview:
    $ref: './paths/documents.yaml#/DocumentPreview'
  /api/v1/documents/{id}/download:
    $ref: './paths/documents.yaml#/DocumentDownload'
  /api/v1/main-plans/{id}/sub-plans:
    $ref: './paths/documents.yaml#/SubPlans'
  /api/v1/attachments:
    $ref: './paths/documents.yaml#/Attachments'
  /api/v1/attachments/{id}:
    $ref: './paths/documents.yaml#/Attachment'
  /api/v1/attachments/batch-import:
    $ref: './paths/documents.yaml#/AttachmentBatchImport'
  /api/v1/attachments/{id}/main-plans:
    $ref: './paths/documents.yaml#/AttachmentMainPlans'
  /api/v1/main-plans/{id}/attachments:
    $ref: './paths/documents.yaml#/MainPlanAttachments'
  /api/v1/main-plans/{id}/attachments/bind:
    $ref: './paths/documents.yaml#/MainPlanAttachmentBinding'
  /api/v1/main-plans/{id}/attachments/{attachmentId}:
    $ref: './paths/documents.yaml#/MainPlanAttachment'
  /api/v1/documents/{id}/permissions:
    $ref: './paths/documents.yaml#/DocumentPermissions'
  /api/v1/audit/logs:
    $ref: './paths/audit.yaml#/AuditLogs'
  /api/v1/statistics/documents:
    $ref: './paths/audit.yaml#/DocumentStatistics'
  /api/v1/audit/statistics/trend:
    $ref: './paths/audit.yaml#/AuditTrendStatistics'
  /api/v1/audit/statistics/actions:
    $ref: './paths/audit.yaml#/AuditActionStatistics'
  /api/v1/audit/statistics/users:
    $ref: './paths/audit.yaml#/AuditUserStatistics'
  /api/v1/recycle-bin/documents:
    $ref: './paths/recycle-bin.yaml#/RecycleBinDocuments'
  /api/v1/recycle-bin/documents/{id}/restore:
    $ref: './paths/recycle-bin.yaml#/RestoreRecycleBinDocument'
components:
  securitySchemes:
    BearerAuth:
      $ref: './components/security-schemes.yaml#/BearerAuth'
  schemas:
    StringId:
      $ref: './components/schemas.yaml#/StringId'
    UtcDateTime:
      $ref: './components/schemas.yaml#/UtcDateTime'
    PageResult:
      $ref: './components/schemas.yaml#/PageResult'
    ErrorResponse:
      $ref: './components/schemas.yaml#/ErrorResponse'
    LoginRequest:
      $ref: './components/schemas.yaml#/LoginRequest'
    LoginResponse:
      $ref: './components/schemas.yaml#/LoginResponse'
    UserSummary:
      $ref: './components/schemas.yaml#/UserSummary'
    OrganizationNode:
      $ref: './components/schemas.yaml#/OrganizationNode'
    UserPageResponse:
      $ref: './components/schemas.yaml#/UserPageResponse'
    CategoryNode:
      $ref: './components/schemas.yaml#/CategoryNode'
    CreateCategoryRequest:
      $ref: './components/schemas.yaml#/CreateCategoryRequest'
    UpdateCategoryRequest:
      $ref: './components/schemas.yaml#/UpdateCategoryRequest'
    DocumentSummary:
      $ref: './components/schemas.yaml#/DocumentSummary'
    DocumentDetail:
      $ref: './components/schemas.yaml#/DocumentDetail'
    AttachmentBindingSummary:
      $ref: './components/schemas.yaml#/AttachmentBindingSummary'
    BindAttachmentsRequest:
      $ref: './components/schemas.yaml#/BindAttachmentsRequest'
    BindAttachmentsResponse:
      $ref: './components/schemas.yaml#/BindAttachmentsResponse'
    UnbindAttachmentResponse:
      $ref: './components/schemas.yaml#/UnbindAttachmentResponse'
    PermissionEntry:
      $ref: './components/schemas.yaml#/PermissionEntry'
    SavePermissionsRequest:
      $ref: './components/schemas.yaml#/SavePermissionsRequest'
    PermissionDetailResponse:
      $ref: './components/schemas.yaml#/PermissionDetailResponse'
    AuditLogSummary:
      $ref: './components/schemas.yaml#/AuditLogSummary'
    AuditLogPageResponse:
      $ref: './components/schemas.yaml#/AuditLogPageResponse'
    DocumentStatisticsResponse:
      $ref: './components/schemas.yaml#/DocumentStatisticsResponse'
    AuditTrendResponse:
      $ref: './components/schemas.yaml#/AuditTrendResponse'
    AuditActionStatisticsResponse:
      $ref: './components/schemas.yaml#/AuditActionStatisticsResponse'
    AuditUserStatisticsResponse:
      $ref: './components/schemas.yaml#/AuditUserStatisticsResponse'
    DeletedBySnapshot:
      $ref: './components/schemas.yaml#/DeletedBySnapshot'
    RecycleBinDocumentSummary:
      $ref: './components/schemas.yaml#/RecycleBinDocumentSummary'
    RecycleBinDocumentPageResponse:
      $ref: './components/schemas.yaml#/RecycleBinDocumentPageResponse'
    RestoreDocumentRequest:
      $ref: './components/schemas.yaml#/RestoreDocumentRequest'
    RestoreDocumentResult:
      $ref: './components/schemas.yaml#/RestoreDocumentResult'
    RestoreDocumentResponse:
      $ref: './components/schemas.yaml#/RestoreDocumentResponse'
    DictionaryOption:
      $ref: './components/schemas.yaml#/DictionaryOption'
    UiDictionaries:
      $ref: './components/schemas.yaml#/UiDictionaries'
    UiDictionariesResponse:
      $ref: './components/schemas.yaml#/UiDictionariesResponse'
    RoleCode:
      $ref: './components/schemas.yaml#/RoleCode'
    AllowedModule:
      $ref: './components/schemas.yaml#/AllowedModule'
    DocumentType:
      $ref: './components/schemas.yaml#/DocumentType'
    DocumentStatus:
      $ref: './components/schemas.yaml#/DocumentStatus'
    SecurityLevel:
      $ref: './components/schemas.yaml#/SecurityLevel'
    VisibilityType:
      $ref: './components/schemas.yaml#/VisibilityType'
    AttachmentType:
      $ref: './components/schemas.yaml#/AttachmentType'
    SubjectType:
      $ref: './components/schemas.yaml#/SubjectType'
    AllowedAction:
      $ref: './components/schemas.yaml#/AllowedAction'
    CategoryType:
      $ref: './components/schemas.yaml#/CategoryType'
    EnabledStatus:
      $ref: './components/schemas.yaml#/EnabledStatus'
    AuditResult:
      $ref: './components/schemas.yaml#/AuditResult'
    AuditAction:
      $ref: './components/schemas.yaml#/AuditAction'
    AuditTarget:
      $ref: './components/schemas.yaml#/AuditTarget'
security:
  - BearerAuth: []
