definitions:
  controller.PaymentStatusUpdateRequest:
    properties:
      paymentProof:
        type: string
      paymentStatus:
        type: string
      transactionId:
        type: string
    required:
    - paymentStatus
    type: object
  paginator.Pagination:
    properties:
      count:
        type: integer
      limit:
        type: integer
      nextPage:
        type: integer
      page:
        type: integer
      previousPage:
        type: integer
      sort:
        type: string
      sortBy:
        type: string
      totalPage:
        type: integer
    type: object
  request.AIChatMessagesCreateRequest:
    properties:
      content:
        minLength: 1
        type: string
      messageType:
        enum:
        - user
        - assistant
        type: string
      sessionId:
        type: string
    required:
    - content
    - messageType
    - sessionId
    type: object
  request.AIChatMessagesUpdateRequest:
    properties:
      content:
        minLength: 1
        type: string
    required:
    - content
    type: object
  request.AIChatSessionsCreateRequest:
    properties:
      agentId:
        type: string
      sessionId:
        type: string
      title:
        maxLength: 255
        minLength: 2
        type: string
    required:
    - agentId
    - sessionId
    - title
    type: object
  request.AIChatSessionsUpdateRequest:
    properties:
      isActive:
        type: boolean
      title:
        maxLength: 255
        minLength: 2
        type: string
    required:
    - title
    type: object
  request.ActivityLogsCreateRequest:
    properties:
      activityTypeId:
        type: integer
      articleId:
        type: integer
      url:
        type: string
      userId:
        type: integer
      visitorIp:
        type: string
    required:
    - activityTypeId
    - url
    type: object
  request.ActivityLogsUpdateRequest:
    properties:
      activityTypeId:
        type: integer
      articleId:
        type: integer
      id:
        type: integer
      url:
        type: string
      userId:
        type: integer
    required:
    - activityTypeId
    - id
    - url
    type: object
  request.AdvertisementCreateRequest:
    properties:
      description:
        type: string
      placement:
        type: string
      redirectLink:
        type: string
      title:
        type: string
    required:
    - description
    - placement
    - redirectLink
    - title
    type: object
  request.AdvertisementUpdateRequest:
    properties:
      description:
        type: string
      id:
        type: integer
      placement:
        type: string
      redirectLink:
        type: string
      title:
        type: string
    required:
    - description
    - id
    - placement
    - redirectLink
    - title
    type: object
  request.ArticleApprovalsCreateRequest:
    properties:
      articleId:
        type: integer
      message:
        type: string
      statusId:
        type: integer
    required:
    - articleId
    - message
    - statusId
    type: object
  request.ArticleApprovalsUpdateRequest:
    properties:
      articleId:
        type: integer
      id:
        type: integer
      message:
        type: string
      statusId:
        type: integer
    required:
    - articleId
    - id
    - message
    - statusId
    type: object
  request.ArticleCategoriesCreateRequest:
    properties:
      createdById:
        type: integer
      description:
        type: string
      oldCategoryId:
        type: integer
      parentId:
        type: integer
      slug:
        type: string
      statusId:
        type: integer
      tags:
        type: string
      title:
        type: string
    required:
    - description
    - statusId
    - title
    type: object
  request.ArticleCategoriesUpdateRequest:
    properties:
      createdById:
        type: integer
      description:
        type: string
      id:
        type: integer
      isPublish:
        type: boolean
      parentId:
        type: integer
      publishedAt:
        type: string
      slug:
        type: string
      statusId:
        type: integer
      tags:
        type: string
      title:
        type: string
    required:
    - description
    - id
    - statusId
    - title
    type: object
  request.ArticleCommentsApprovalRequest:
    properties:
      id:
        type: integer
      statusId:
        type: integer
    required:
    - id
    - statusId
    type: object
  request.ArticleCommentsCreateRequest:
    properties:
      articleId:
        type: integer
      isPublic:
        type: boolean
      message:
        type: string
      parentId:
        type: integer
    required:
    - articleId
    - message
    type: object
  request.ArticleCommentsUpdateRequest:
    properties:
      articleId:
        type: integer
      id:
        type: integer
      isPublic:
        type: boolean
      message:
        type: string
      parentId:
        type: integer
    required:
    - articleId
    - id
    - message
    type: object
  request.ArticleFilesUpdateRequest:
    properties:
      articleId:
        type: integer
      fileAlt:
        type: string
      fileName:
        type: string
      filePath:
        type: string
      fileThumbnail:
        type: string
      fileUrl:
        type: string
      heightPixel:
        type: string
      id:
        type: integer
      isPublish:
        type: boolean
      publishedAt:
        type: string
      size:
        type: string
      statusId:
        type: integer
      widthPixel:
        type: string
    required:
    - articleId
    - id
    - isPublish
    - publishedAt
    - statusId
    type: object
  request.ArticlesCreateRequest:
    properties:
      aiArticleId:
        type: integer
      categoryIds:
        type: string
      createdAt:
        type: string
      createdById:
        type: integer
      description:
        type: string
      htmlDescription:
        type: string
      isDraft:
        type: boolean
      isPublish:
        type: boolean
      oldId:
        type: integer
      slug:
        type: string
      tags:
        type: string
      title:
        type: string
      typeId:
        type: integer
    required:
    - categoryIds
    - description
    - htmlDescription
    - slug
    - tags
    - title
    - typeId
    type: object
  request.ArticlesUpdateRequest:
    properties:
      aiArticleId:
        type: integer
      categoryIds:
        type: string
      createdAt:
        type: string
      createdById:
        type: integer
      description:
        type: string
      htmlDescription:
        type: string
      isDraft:
        type: boolean
      isPublish:
        type: boolean
      slug:
        type: string
      statusId:
        type: integer
      tags:
        type: string
      title:
        type: string
      typeId:
        type: integer
    required:
    - categoryIds
    - description
    - htmlDescription
    - slug
    - tags
    - title
    - typeId
    type: object
  request.CampaignDestinationsCreateRequest:
    properties:
      campaign_type_id:
        type: integer
      createdById:
        type: integer
      description:
        type: string
      isActive:
        type: boolean
      name:
        type: string
      sub_type:
        type: string
      url:
        type: string
    required:
    - campaign_type_id
    - name
    - sub_type
    type: object
  request.CampaignDestinationsUpdateRequest:
    properties:
      campaign_type_id:
        type: integer
      description:
        type: string
      isActive:
        type: boolean
      name:
        type: string
      sub_type:
        type: string
      url:
        type: string
    required:
    - campaign_type_id
    - name
    - sub_type
    type: object
  request.CampaignTypesCreateRequest:
    properties:
      createdById:
        type: integer
      description:
        type: string
      name:
        type: string
    required:
    - name
    type: object
  request.CampaignTypesUpdateRequest:
    properties:
      description:
        type: string
      name:
        type: string
    required:
    - name
    type: object
  request.CampaignsCreateRequest:
    properties:
      campaign_type_id:
        type: integer
      creator_id:
        type: integer
      description:
        type: string
      end_date:
        type: string
      media_item_selected:
        type: string
      media_promote:
        type: boolean
      media_type_selected:
        type: string
      purpose:
        type: string
      start_date:
        type: string
      status:
        type: string
      title:
        type: string
    required:
    - campaign_type_id
    - title
    type: object
  request.CampaignsUpdateRequest:
    properties:
      campaign_type_id:
        type: integer
      description:
        type: string
      end_date:
        type: string
      media_item_selected:
        type: string
      media_promote:
        type: boolean
      media_type_selected:
        type: string
      purpose:
        type: string
      start_date:
        type: string
      status:
        type: string
      title:
        type: string
    required:
    - campaign_type_id
    - title
    type: object
  request.ChatMessageCreateRequest:
    properties:
      chatSessionId:
        type: integer
      message:
        maxLength: 1000
        minLength: 1
        type: string
      messageType:
        enum:
        - text
        - image
        - file
        - user
        - assistant
        type: string
    required:
    - chatSessionId
    - message
    type: object
  request.ChatMessageUpdateRequest:
    properties:
      message:
        maxLength: 1000
        minLength: 1
        type: string
    required:
    - message
    type: object
  request.ChatScheduleCreateRequest:
    properties:
      chat_session_id:
        description: Optional - if empty, will create new chat session
        type: integer
      description:
        maxLength: 1000
        type: string
      duration:
        description: 15 minutes to 8 hours
        maximum: 480
        minimum: 15
        type: integer
      file_ids:
        description: Array of file IDs to attach to schedule
        items:
          type: integer
        type: array
      scheduled_at:
        type: string
      summary:
        maxLength: 2000
        type: string
      title:
        maxLength: 255
        minLength: 3
        type: string
    required:
    - scheduled_at
    - title
    type: object
  request.ChatScheduleFileUpdateRequest:
    properties:
      description:
        maxLength: 500
        type: string
      file_name:
        maxLength: 255
        type: string
      file_path:
        maxLength: 500
        type: string
      file_size:
        minimum: 0
        type: integer
      file_type:
        enum:
        - article
        - journal
        - video
        - audio
        - document
        - other
        type: string
      is_required:
        type: boolean
      mime_type:
        maxLength: 100
        type: string
      original_name:
        maxLength: 255
        type: string
    type: object
  request.ChatScheduleUpdateRequest:
    properties:
      description:
        maxLength: 1000
        type: string
      duration:
        maximum: 480
        minimum: 15
        type: integer
      file_ids:
        description: Array of file IDs to attach to schedule
        items:
          type: integer
        type: array
      scheduled_at:
        type: string
      status:
        enum:
        - scheduled
        - ongoing
        - completed
        - cancelled
        type: string
      summary:
        maxLength: 2000
        type: string
      title:
        maxLength: 255
        minLength: 3
        type: string
    type: object
  request.ChatSessionCreateRequest:
    properties:
      name:
        description: null for personal chat
        maxLength: 255
        minLength: 2
        type: string
      type:
        enum:
        - personal
        - group
        type: string
      userIds:
        description: participants (excluding creator)
        items:
          type: integer
        minItems: 1
        type: array
    required:
    - type
    - userIds
    type: object
  request.ChatSessionUpdateRequest:
    properties:
      name:
        maxLength: 255
        minLength: 2
        type: string
    type: object
  request.CitiesCreateRequest:
    properties:
      cityName:
        type: string
      provId:
        type: integer
    required:
    - cityName
    - provId
    type: object
  request.CitiesUpdateRequest:
    properties:
      cityName:
        type: string
      id:
        type: integer
      provId:
        type: integer
    required:
    - cityName
    - id
    - provId
    type: object
  request.CustomStaticPagesCreateRequest:
    properties:
      description:
        type: string
      htmlBody:
        type: string
      slug:
        type: string
      title:
        type: string
    required:
    - htmlBody
    - slug
    - title
    type: object
  request.CustomStaticPagesUpdateRequest:
    properties:
      description:
        type: string
      htmlBody:
        type: string
      id:
        type: integer
      slug:
        type: string
      title:
        type: string
      updatedAt:
        type: string
    required:
    - htmlBody
    - id
    - slug
    - title
    type: object
  request.EbookRatingsCreateRequest:
    properties:
      ebookId:
        type: integer
      isAnonymous:
        type: boolean
      purchaseId:
        type: integer
      rating:
        maximum: 5
        minimum: 1
        type: integer
      review:
        type: string
    required:
    - ebookId
    - purchaseId
    - rating
    type: object
  request.EbookRatingsUpdateRequest:
    properties:
      isAnonymous:
        type: boolean
      rating:
        maximum: 5
        minimum: 1
        type: integer
      review:
        type: string
    required:
    - rating
    type: object
  request.EbooksCreateRequest:
    properties:
      category:
        type: string
      createdAt:
        type: string
      createdById:
        type: integer
      description:
        type: string
      isPublished:
        type: boolean
      isbn:
        type: string
      language:
        type: string
      pageCount:
        type: integer
      price:
        minimum: 0
        type: number
      publishedYear:
        type: integer
      publisher:
        type: string
      slug:
        type: string
      tags:
        type: string
      title:
        type: string
    required:
    - description
    - price
    - slug
    - title
    type: object
  request.EbooksUpdateRequest:
    properties:
      category:
        type: string
      createdAt:
        type: string
      createdById:
        type: integer
      description:
        type: string
      isPublished:
        type: boolean
      isbn:
        type: string
      language:
        type: string
      pageCount:
        type: integer
      price:
        minimum: 0
        type: number
      publishedYear:
        type: integer
      publisher:
        type: string
      slug:
        type: string
      statusId:
        type: integer
      tags:
        type: string
      title:
        type: string
    required:
    - description
    - price
    - slug
    - title
    type: object
  request.EducationHistoryCreateRequest:
    properties:
      certificateImage:
        type: string
      educationLevel:
        maxLength: 100
        minLength: 2
        type: string
      graduationYear:
        maximum: 2030
        minimum: 1950
        type: integer
      major:
        maxLength: 255
        minLength: 2
        type: string
      schoolName:
        maxLength: 255
        minLength: 2
        type: string
    required:
    - educationLevel
    - graduationYear
    - major
    - schoolName
    type: object
  request.EducationHistoryUpdateRequest:
    properties:
      certificateImage:
        type: string
      educationLevel:
        maxLength: 100
        minLength: 2
        type: string
      graduationYear:
        maximum: 2030
        minimum: 1950
        type: integer
      major:
        maxLength: 255
        minLength: 2
        type: string
      schoolName:
        maxLength: 255
        minLength: 2
        type: string
    required:
    - educationLevel
    - graduationYear
    - major
    - schoolName
    type: object
  request.FeedbacksCreateRequest:
    properties:
      commentFromEmail:
        type: string
      commentFromName:
        type: string
      message:
        type: string
    required:
    - commentFromEmail
    - commentFromName
    - message
    type: object
  request.FeedbacksUpdateRequest:
    properties:
      commentFromEmail:
        type: string
      commentFromName:
        type: string
      id:
        type: integer
      message:
        type: string
    required:
    - commentFromEmail
    - commentFromName
    - id
    - message
    type: object
  request.MagazinesCreateRequest:
    properties:
      createdById:
        type: integer
      description:
        type: string
      isPublish:
        type: boolean
      pageUrl:
        type: string
      publishedAt:
        type: string
      statusId:
        type: integer
      thumbnailPath:
        type: string
      thumbnailUrl:
        type: string
      title:
        type: string
    required:
    - description
    - statusId
    - title
    type: object
  request.MagazinesUpdateRequest:
    properties:
      createdById:
        type: integer
      description:
        type: string
      id:
        type: integer
      isPublish:
        type: boolean
      pageUrl:
        type: string
      publishedAt:
        type: string
      statusId:
        type: integer
      thumbnailPath:
        type: string
      thumbnailUrl:
        type: string
      title:
        type: string
    required:
    - description
    - id
    - statusId
    - title
    type: object
  request.MasterMenusCreateRequest:
    properties:
      description:
        type: string
      group:
        type: string
      icon:
        type: string
      moduleId:
        type: integer
      name:
        type: string
      parentMenuId:
        type: integer
      statusId:
        type: integer
    required:
    - description
    - group
    - moduleId
    - name
    - statusId
    type: object
  request.MasterModulesCreateRequest:
    properties:
      description:
        type: string
      name:
        type: string
      pathUrl:
        type: string
      statusId:
        type: integer
    required:
    - description
    - name
    - pathUrl
    - statusId
    type: object
  request.MasterModulesUpdateRequest:
    properties:
      description:
        type: string
      id:
        type: integer
      name:
        type: string
      pathUrl:
        type: string
      statusId:
        type: integer
    required:
    - description
    - id
    - name
    - pathUrl
    - statusId
    type: object
  request.ResearchJournalsCreateRequest:
    properties:
      journalTitle:
        maxLength: 500
        minLength: 2
        type: string
      journalUrl:
        type: string
      publishedDate:
        type: string
      publisher:
        maxLength: 255
        minLength: 2
        type: string
    required:
    - journalTitle
    - journalUrl
    - publisher
    type: object
  request.ResearchJournalsUpdateRequest:
    properties:
      journalTitle:
        maxLength: 500
        minLength: 2
        type: string
      journalUrl:
        type: string
      publishedDate:
        type: string
      publisher:
        maxLength: 255
        minLength: 2
        type: string
    required:
    - journalTitle
    - journalUrl
    - publisher
    type: object
  request.SubscriptionCreateRequest:
    properties:
      email:
        type: string
    required:
    - email
    type: object
  request.SubscriptionUpdateRequest:
    properties:
      email:
        type: string
      id:
        type: integer
    required:
    - email
    - id
    type: object
  request.UserEmailValidationRequest:
    properties:
      newEmail:
        type: string
      oldEmail:
        type: string
      password:
        type: string
      username:
        type: string
    type: object
  request.UserForgotPassword:
    properties:
      username:
        type: string
    type: object
  request.UserLevelsApprovalRequest:
    properties:
      ids:
        type: string
      isApprovalActive:
        type: boolean
    required:
    - ids
    - isApprovalActive
    type: object
  request.UserLevelsCreateRequest:
    properties:
      aliasName:
        type: string
      group:
        type: string
      isActive:
        type: boolean
      isApprovalActive:
        type: boolean
      levelNumber:
        type: integer
      name:
        type: string
      parentLevelId:
        type: integer
      provinceId:
        type: integer
    required:
    - aliasName
    - levelNumber
    - name
    type: object
  request.UserLevelsUpdateRequest:
    properties:
      aliasName:
        type: string
      group:
        type: string
      isApprovalActive:
        type: boolean
      levelNumber:
        type: integer
      name:
        type: string
      parentLevelId:
        type: integer
      provinceId:
        type: integer
    required:
    - aliasName
    - levelNumber
    - name
    type: object
  request.UserLogin:
    properties:
      password:
        type: string
      refreshToken:
        type: string
      username:
        type: string
    type: object
  request.UserOtpRequest:
    properties:
      email:
        type: string
      name:
        type: string
    required:
    - email
    type: object
  request.UserOtpValidation:
    properties:
      email:
        type: string
      otpCode:
        type: string
      username:
        type: string
    type: object
  request.UserResetPassword:
    properties:
      codeRequest:
        type: string
      confirmPassword:
        type: string
      password:
        type: string
      userId:
        type: string
    type: object
  request.UserRoleAccessesCreateRequest:
    properties:
      isAdminEnabled:
        type: boolean
      isApprovalEnabled:
        type: boolean
      isDeleteEnabled:
        type: boolean
      isInsertEnabled:
        type: boolean
      isUpdateEnabled:
        type: boolean
      isViewEnabled:
        type: boolean
      menuId:
        type: integer
    required:
    - isAdminEnabled
    - isApprovalEnabled
    - isDeleteEnabled
    - isInsertEnabled
    - isUpdateEnabled
    - isViewEnabled
    - menuId
    type: object
  request.UserRoleAccessesUpdateRequest:
    properties:
      id:
        type: integer
      isAdminEnabled:
        type: boolean
      isApprovalEnabled:
        type: boolean
      isDeleteEnabled:
        type: boolean
      isInsertEnabled:
        type: boolean
      isUpdateEnabled:
        type: boolean
      isViewEnabled:
        type: boolean
      menuId:
        type: integer
      userRoleId:
        type: integer
    required:
    - id
    - isAdminEnabled
    - isApprovalEnabled
    - isDeleteEnabled
    - isInsertEnabled
    - isUpdateEnabled
    - isViewEnabled
    - menuId
    - userRoleId
    type: object
  request.UserRolesCreateRequest:
    properties:
      code:
        type: string
      description:
        type: string
      name:
        type: string
      statusId:
        type: integer
      userLevelIds:
        items:
          type: integer
        type: array
      userRoleAccess:
        items:
          $ref: '#/definitions/request.UserRoleAccessesCreateRequest'
        type: array
    required:
    - code
    - description
    - name
    - statusId
    - userLevelIds
    - userRoleAccess
    type: object
  request.UserRolesUpdateRequest:
    properties:
      code:
        type: string
      description:
        type: string
      levelNumber:
        type: integer
      name:
        type: string
      statusId:
        type: integer
      userLevelIds:
        items:
          type: integer
        type: array
    required:
    - code
    - description
    - levelNumber
    - name
    - statusId
    - userLevelIds
    type: object
  request.UserSavePassword:
    properties:
      confirmPassword:
        type: string
      password:
        type: string
    type: object
  request.UsersCreateRequest:
    properties:
      address:
        type: string
      dateOfBirth:
        type: string
      degree:
        type: string
      email:
        type: string
      fullname:
        type: string
      genderType:
        type: string
      identityGroup:
        type: string
      identityGroupNumber:
        type: string
      identityNumber:
        type: string
      identityType:
        type: string
      lastEducation:
        type: string
      lastJobTitle:
        type: string
      password:
        type: string
      phoneNumber:
        type: string
      userLevelId:
        type: integer
      userRoleId:
        type: integer
      username:
        type: string
      whatsappNumber:
        type: string
      workType:
        type: string
    required:
    - email
    - fullname
    - password
    - userLevelId
    - userRoleId
    - username
    type: object
  request.UsersUpdateRequest:
    properties:
      address:
        type: string
      dateOfBirth:
        type: string
      degree:
        type: string
      email:
        type: string
      fullname:
        type: string
      genderType:
        type: string
      identityGroup:
        type: string
      identityGroupNumber:
        type: string
      identityNumber:
        type: string
      identityType:
        type: string
      lastEducation:
        type: string
      lastJobTitle:
        type: string
      phoneNumber:
        type: string
      statusId:
        type: integer
      userLevelId:
        type: integer
      userRoleId:
        type: integer
      username:
        type: string
      whatsappNumber:
        type: string
      workType:
        type: string
    required:
    - email
    - fullname
    - userLevelId
    - userRoleId
    - username
    type: object
  request.WorkHistoryCreateRequest:
    properties:
      companyName:
        maxLength: 255
        minLength: 2
        type: string
      endDate:
        type: string
      jobTitle:
        maxLength: 255
        minLength: 2
        type: string
      startDate:
        type: string
    required:
    - companyName
    - jobTitle
    - startDate
    type: object
  request.WorkHistoryUpdateRequest:
    properties:
      companyName:
        maxLength: 255
        minLength: 2
        type: string
      endDate:
        type: string
      jobTitle:
        maxLength: 255
        minLength: 2
        type: string
      startDate:
        type: string
    required:
    - companyName
    - jobTitle
    - startDate
    type: object
  response.BadRequestError:
    properties:
      code:
        example: 400
        type: integer
      message:
        example: bad request
        type: string
      success:
        example: false
        type: boolean
    type: object
  response.InternalServerError:
    properties:
      code:
        example: 500
        type: integer
      message:
        example: internal server error
        type: string
      success:
        example: false
        type: boolean
    type: object
  response.Response:
    properties:
      code:
        example: 200
        type: integer
      data: {}
      messages:
        items: {}
        type: array
      meta: {}
      success:
        example: true
        type: boolean
    type: object
  response.UnauthorizedError:
    properties:
      code:
        example: 401
        type: integer
      message:
        example: unauthorized access
        type: string
      success:
        example: false
        type: boolean
    type: object
info:
  contact: {}
paths:
  /activity-logs:
    get:
      description: API for getting all ActivityLogs
      parameters:
      - in: query
        name: activityTypeId
        type: integer
      - in: query
        name: articleId
        type: integer
      - in: query
        name: url
        type: string
      - in: query
        name: userId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all ActivityLogs
      tags:
      - ActivityLogs
    post:
      description: API for create ActivityLogs
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ActivityLogsCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create ActivityLogs
      tags:
      - ActivityLogs
  /activity-logs/{id}:
    delete:
      description: API for delete ActivityLogs
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: ActivityLogs ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete ActivityLogs
      tags:
      - ActivityLogs
    put:
      description: API for update ActivityLogs
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ActivityLogsUpdateRequest'
      - description: ActivityLogs ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update ActivityLogs
      tags:
      - ActivityLogs
  /activity-logs/detail/{id}:
    get:
      description: API for getting one ActivityLogs
      parameters:
      - description: ActivityLogs ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one ActivityLogs
      tags:
      - ActivityLogs
  /activity-logs/statistics:
    get:
      description: API for get activity stats ActivityLogs
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get activity stats ActivityLogs
      tags:
      - ActivityLogs
  /advertisement:
    get:
      description: API for getting all Advertisement
      parameters:
      - in: query
        name: description
        type: string
      - in: query
        name: isPublish
        type: boolean
      - in: query
        name: placement
        type: string
      - in: query
        name: redirectLink
        type: string
      - in: query
        name: statusId
        type: integer
      - in: query
        name: title
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all Advertisement
      tags:
      - Advertisement
    post:
      description: API for create Advertisement
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.AdvertisementCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create Advertisement
      tags:
      - Advertisement
  /advertisement/{id}:
    delete:
      description: API for delete Advertisement
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Advertisement ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete Advertisement
      tags:
      - Advertisement
    get:
      description: API for getting one Advertisement
      parameters:
      - description: Advertisement ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Advertisement
      tags:
      - Advertisement
    put:
      description: API for update Advertisement
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.AdvertisementUpdateRequest'
      - description: Advertisement ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update Advertisement
      tags:
      - Advertisement
  /advertisement/publish/{id}:
    put:
      description: API for Update Publish Advertisement
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Advertisement ID
        in: path
        name: id
        required: true
        type: integer
      - description: Advertisement Publish Status
        in: query
        name: isPublish
        required: true
        type: boolean
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update Publish Advertisement
      tags:
      - Advertisement
  /advertisement/upload/{id}:
    post:
      description: API for Upload File Advertisement
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Upload file
        in: formData
        name: file
        required: true
        type: file
      - description: Advertisement ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Upload Advertisement
      tags:
      - Advertisement
  /advertisement/viewer/{filename}:
    get:
      description: API for Viewer Advertisement
      parameters:
      - description: Content File Name
        in: path
        name: filename
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Viewer Advertisement
      tags:
      - Advertisement
  /ai-chat/logs:
    get:
      description: API for getting all AI chat logs for authenticated user
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - in: query
        name: logType
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get user AI chat logs
      tags:
      - AI Chat
  /ai-chat/logs/{id}:
    get:
      description: API for getting one AI chat log
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Log ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one AI chat log
      tags:
      - AI Chat
  /ai-chat/sessions:
    get:
      description: API for getting all AI chat sessions for authenticated user
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - in: query
        name: isActive
        type: boolean
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get user AI chat sessions
      tags:
      - AI Chat
    post:
      description: API for create AI chat session
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.AIChatSessionsCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create AI chat session
      tags:
      - AI Chat
  /ai-chat/sessions/{id}:
    delete:
      description: API for delete AI chat session
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Session ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete AI chat session
      tags:
      - AI Chat
    get:
      description: API for getting one AI chat session
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Session ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one AI chat session
      tags:
      - AI Chat
    put:
      description: API for update AI chat session
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        type: string
      - description: Session ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.AIChatSessionsUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update AI chat session
      tags:
      - AI Chat
  /ai-chat/sessions/{id}/messages:
    get:
      description: API for getting all messages in an AI chat session
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Session ID
        in: path
        name: id
        required: true
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get AI chat session messages
      tags:
      - AI Chat
  /ai-chat/sessions/messages:
    post:
      description: API for sending a message to an AI chat session
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.AIChatMessagesCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Send message to AI chat session
      tags:
      - AI Chat
  /ai-chat/sessions/messages/{messageId}:
    delete:
      description: API for delete AI chat message
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Message ID
        in: path
        name: messageId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete AI chat message
      tags:
      - AI Chat
    put:
      description: API for update AI chat message
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Message ID
        in: path
        name: messageId
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.AIChatMessagesUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update AI chat message
      tags:
      - AI Chat
  /article-approvals:
    get:
      description: API for getting all ArticleApprovals
      parameters:
      - in: query
        name: approvalAtLevel
        type: integer
      - in: query
        name: approvalBy
        type: integer
      - in: query
        name: articleId
        type: integer
      - in: query
        name: message
        type: string
      - in: query
        name: statusId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all ArticleApprovals
      tags:
      - ArticleApprovals
    post:
      description: API for create ArticleApprovals
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ArticleApprovalsCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create ArticleApprovals
      tags:
      - ArticleApprovals
  /article-approvals/{id}:
    delete:
      description: API for delete ArticleApprovals
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: ArticleApprovals ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete ArticleApprovals
      tags:
      - ArticleApprovals
    get:
      description: API for getting one ArticleApprovals
      parameters:
      - description: ArticleApprovals ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one ArticleApprovals
      tags:
      - ArticleApprovals
    put:
      description: API for update ArticleApprovals
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ArticleApprovalsUpdateRequest'
      - description: ArticleApprovals ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update ArticleApprovals
      tags:
      - ArticleApprovals
  /article-categories:
    get:
      description: API for getting all ArticleCategories
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - in: query
        name: UserLevelId
        type: integer
      - in: query
        name: UserLevelNumber
        type: integer
      - in: query
        name: description
        type: string
      - in: query
        name: isPublish
        type: boolean
      - in: query
        name: parentId
        type: integer
      - in: query
        name: statusId
        type: integer
      - in: query
        name: title
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all ArticleCategories
      tags:
      - Article Categories
    post:
      description: API for create ArticleCategories
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ArticleCategoriesCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create ArticleCategories
      tags:
      - Article Categories
  /article-categories/{id}:
    delete:
      description: API for delete ArticleCategories
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: ArticleCategories ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete ArticleCategories
      tags:
      - Article Categories
    get:
      description: API for getting one ArticleCategories
      parameters:
      - description: ArticleCategories ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one ArticleCategories
      tags:
      - Article Categories
    put:
      description: API for update ArticleCategories
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ArticleCategoriesUpdateRequest'
      - description: ArticleCategories ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update ArticleCategories
      tags:
      - Article Categories
  /article-categories/old/{id}:
    get:
      description: API for getting one ArticleCategories
      parameters:
      - description: ArticleCategories Old ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one ArticleCategories
      tags:
      - Article Categories
  /article-categories/slug/{slug}:
    get:
      description: API for getting one ArticleCategories
      parameters:
      - description: ArticleCategories Slug
        in: path
        name: slug
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one ArticleCategories
      tags:
      - Article Categories
  /article-categories/thumbnail/{id}:
    post:
      description: API for Upload ArticleCategories Thumbnail
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Upload thumbnail
        in: formData
        name: files
        required: true
        type: file
      - description: ArticleCategories ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Upload ArticleCategories Thumbnail
      tags:
      - Article Categories
  /article-categories/thumbnail/viewer/{id}:
    get:
      description: API for View Thumbnail of ArticleCategories
      parameters:
      - description: ArticleCategories ID
        in: path
        name: id
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Viewer ArticleCategories
      tags:
      - Article Categories
  /article-category-details:
    get:
      description: API for getting all ArticleCategoryDetails
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get all ArticleCategoryDetails
      tags:
      - Untags
    post:
      description: API for create ArticleCategoryDetails
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Create ArticleCategoryDetails
      tags:
      - Untags
  /article-category-details/{id}:
    delete:
      description: API for delete ArticleCategoryDetails
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: ArticleCategoryDetails ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: delete ArticleCategoryDetails
      tags:
      - Untags
    get:
      description: API for getting one ArticleCategoryDetails
      parameters:
      - description: ArticleCategoryDetails ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get one ArticleCategoryDetails
      tags:
      - Untags
    put:
      description: API for update ArticleCategoryDetails
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: ArticleCategoryDetails ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: update ArticleCategoryDetails
      tags:
      - Untags
  /article-comments:
    get:
      description: API for getting all ArticleComments
      parameters:
      - in: query
        name: articleId
        type: integer
      - in: query
        name: commentFrom
        type: integer
      - in: query
        name: isPublic
        type: boolean
      - in: query
        name: message
        type: string
      - in: query
        name: parentId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all ArticleComments
      tags:
      - ArticleComments
    post:
      description: API for create ArticleComments
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ArticleCommentsCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create ArticleComments
      tags:
      - ArticleComments
  /article-comments/{id}:
    delete:
      description: API for delete ArticleComments
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: ArticleComments ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete ArticleComments
      tags:
      - ArticleComments
    get:
      description: API for getting one ArticleComments
      parameters:
      - description: ArticleComments ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one ArticleComments
      tags:
      - ArticleComments
    put:
      description: API for update ArticleComments
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ArticleCommentsUpdateRequest'
      - description: ArticleComments ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update ArticleComments
      tags:
      - ArticleComments
  /article-comments/approval:
    post:
      description: API for Approval ArticleComments
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ArticleCommentsApprovalRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Approval ArticleComments
      tags:
      - ArticleComments
  /article-files:
    get:
      description: API for getting all ArticleFiles
      parameters:
      - in: query
        name: articleId
        type: integer
      - in: query
        name: fileName
        type: string
      - in: query
        name: isPublish
        type: boolean
      - in: query
        name: statusId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all ArticleFiles
      tags:
      - Article Files
  /article-files/{articleId}:
    post:
      description: API for create ArticleFiles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Upload file
        in: formData
        name: files
        required: true
        type: file
      - description: Article ID
        in: path
        name: articleId
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Upload ArticleFiles
      tags:
      - Article Files
  /article-files/{id}:
    delete:
      description: API for delete ArticleFiles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: ArticleFiles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete ArticleFiles
      tags:
      - Article Files
    get:
      description: API for getting one ArticleFiles
      parameters:
      - description: ArticleFiles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one ArticleFiles
      tags:
      - Article Files
    put:
      description: API for update ArticleFiles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ArticleFilesUpdateRequest'
      - description: ArticleFiles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update ArticleFiles
      tags:
      - Article Files
  /article-files/upload-status/{uploadId}:
    get:
      description: API for GetUploadStatus ArticleFiles
      parameters:
      - description: Upload ID of ArticleFiles
        in: path
        name: uploadId
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: GetUploadStatus ArticleFiles
      tags:
      - Article Files
  /article-files/viewer/{filename}:
    get:
      description: API for Viewer ArticleFiles
      parameters:
      - description: Article File Name
        in: path
        name: filename
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Viewer ArticleFiles
      tags:
      - Article Files
  /articles:
    get:
      description: API for getting all Articles
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - in: query
        name: category
        type: string
      - in: query
        name: categoryId
        type: integer
      - in: query
        name: createdById
        type: integer
      - in: query
        name: description
        type: string
      - in: query
        name: isBanner
        type: boolean
      - in: query
        name: isDraft
        type: boolean
      - in: query
        name: isPublish
        type: boolean
      - in: query
        name: statusId
        type: integer
      - in: query
        name: tags
        type: string
      - in: query
        name: title
        type: string
      - in: query
        name: typeId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all Articles
      tags:
      - Articles
    post:
      description: API for create Articles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ArticlesCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create Articles
      tags:
      - Articles
  /articles/{id}:
    delete:
      description: API for delete Articles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Articles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete Articles
      tags:
      - Articles
    get:
      description: API for getting one Articles
      parameters:
      - description: Articles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Articles
      tags:
      - Articles
    put:
      description: API for update Articles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ArticlesUpdateRequest'
      - description: Articles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update Articles
      tags:
      - Articles
  /articles/banner/{id}:
    put:
      description: API for Update Banner Articles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Articles ID
        in: path
        name: id
        required: true
        type: integer
      - description: Articles Banner Status
        in: query
        name: isBanner
        required: true
        type: boolean
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update Banner Articles
      tags:
      - Articles
  /articles/old-id/{id}:
    get:
      description: API for getting one Articles
      parameters:
      - description: Articles Old ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Articles
      tags:
      - Articles
  /articles/publish-scheduling:
    post:
      description: API for Publish Schedule of Article
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: article id
        in: query
        name: id
        type: integer
      - description: publish date
        in: query
        name: date
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: PublishScheduling Articles
      tags:
      - Articles
  /articles/statistic/monthly:
    get:
      description: API for ArticleMonthlyStats of Article
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: year
        in: query
        name: year
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: ArticleMonthlyStats Articles
      tags:
      - Articles
  /articles/statistic/summary:
    get:
      description: API for Summary Stats of Article
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: SummaryStats Articles
      tags:
      - Articles
  /articles/statistic/user-levels:
    get:
      description: API for ArticlePerUserLevelStats of Article
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: start date
        in: query
        name: startDate
        type: string
      - description: start date
        in: query
        name: endDate
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: ArticlePerUserLevelStats Articles
      tags:
      - Articles
  /articles/thumbnail/{id}:
    post:
      description: API for Save Thumbnail of Articles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Upload thumbnail
        in: formData
        name: files
        required: true
        type: file
      - description: Articles ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Save Thumbnail Articles
      tags:
      - Articles
  /articles/thumbnail/viewer/{thumbnailName}:
    get:
      description: API for View Thumbnail of Article
      parameters:
      - description: Articles Thumbnail Name
        in: path
        name: thumbnailName
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Viewer Articles Thumbnail
      tags:
      - Articles
  /campaign-destinations:
    get:
      description: API for getting all CampaignDestinations
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - in: query
        name: campaignTypeId
        type: integer
      - in: query
        name: isActive
        type: boolean
      - in: query
        name: name
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all CampaignDestinations
      tags:
      - CampaignDestinations
    post:
      description: API for create CampaignDestinations
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.CampaignDestinationsCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create CampaignDestinations
      tags:
      - CampaignDestinations
  /campaign-destinations/{id}:
    delete:
      description: API for delete CampaignDestinations
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: CampaignDestinations ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete CampaignDestinations
      tags:
      - CampaignDestinations
    get:
      description: API for getting one CampaignDestinations
      parameters:
      - description: CampaignDestinations ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one CampaignDestinations
      tags:
      - CampaignDestinations
    put:
      description: API for update CampaignDestinations
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.CampaignDestinationsUpdateRequest'
      - description: CampaignDestinations ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update CampaignDestinations
      tags:
      - CampaignDestinations
  /campaign-types:
    get:
      description: API for getting all CampaignTypes
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - in: query
        name: name
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all CampaignTypes
      tags:
      - CampaignTypes
    post:
      description: API for create CampaignTypes
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.CampaignTypesCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create CampaignTypes
      tags:
      - CampaignTypes
  /campaign-types/{id}:
    delete:
      description: API for delete CampaignTypes
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: CampaignTypes ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete CampaignTypes
      tags:
      - CampaignTypes
    get:
      description: API for getting one CampaignTypes
      parameters:
      - description: CampaignTypes ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one CampaignTypes
      tags:
      - CampaignTypes
    put:
      description: API for update CampaignTypes
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.CampaignTypesUpdateRequest'
      - description: CampaignTypes ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update CampaignTypes
      tags:
      - CampaignTypes
  /campaigns:
    get:
      description: API for getting all Campaigns
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - in: query
        name: campaignTypeId
        type: integer
      - in: query
        name: creatorId
        type: integer
      - in: query
        name: status
        type: string
      - in: query
        name: title
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all Campaigns
      tags:
      - Campaigns
    post:
      description: API for create Campaigns
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.CampaignsCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create Campaigns
      tags:
      - Campaigns
  /campaigns/{id}:
    delete:
      description: API for delete Campaigns
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Campaigns ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete Campaigns
      tags:
      - Campaigns
    get:
      description: API for getting one Campaigns
      parameters:
      - description: Campaigns ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Campaigns
      tags:
      - Campaigns
    put:
      description: API for update Campaigns
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.CampaignsUpdateRequest'
      - description: Campaigns ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update Campaigns
      tags:
      - Campaigns
  /chat/messages:
    get:
      description: API for getting all messages in a specific chat session
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Session ID
        in: query
        name: chatSessionId
        required: true
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all chat messages
      tags:
      - Chat
    post:
      description: API for creating a new chat message
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ChatMessageCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create chat message
      tags:
      - Chat
  /chat/messages/{id}:
    delete:
      description: API for deleting chat message (only sender can delete)
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Message ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete chat message
      tags:
      - Chat
    get:
      description: API for getting one chat message
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Message ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one chat message
      tags:
      - Chat
    put:
      description: API for updating chat message (only sender can update)
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Message ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ChatMessageUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update chat message
      tags:
      - Chat
  /chat/schedule-files:
    get:
      description: API for getting files for a specific chat schedule
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Schedule ID
        in: query
        name: chatScheduleId
        required: true
        type: integer
      - description: File type filter
        in: query
        name: fileType
        type: string
      - description: Required file filter
        in: query
        name: isRequired
        type: boolean
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get chat schedule files
      tags:
      - Chat Schedule File
  /chat/schedule-files/{chatScheduleId}:
    post:
      description: API for uploading file for chat schedule
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Upload file
        in: formData
        name: files
        required: true
        type: file
      - description: Chat Schedule ID
        in: path
        name: chatScheduleId
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Upload chat schedule file
      tags:
      - Chat Schedule File
  /chat/schedule-files/{id}:
    delete:
      description: API for deleting chat schedule file
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Schedule File ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete chat schedule file
      tags:
      - Chat Schedule File
    get:
      description: API for getting one chat schedule file
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Schedule File ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one chat schedule file
      tags:
      - Chat Schedule File
    put:
      description: API for updating chat schedule file
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Schedule File ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ChatScheduleFileUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update chat schedule file
      tags:
      - Chat Schedule File
  /chat/schedule-files/viewer/{filename}:
    get:
      description: API for viewing chat schedule file
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Schedule File Name
        in: path
        name: filename
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            type: file
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: View chat schedule file
      tags:
      - Chat Schedule File
  /chat/schedules:
    get:
      description: API for getting all chat schedules for authenticated user
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Session ID
        in: query
        name: chatSessionId
        type: string
      - description: Schedule status (scheduled, ongoing, completed, cancelled)
        in: query
        name: status
        type: string
      - description: Created by user ID
        in: query
        name: createdBy
        type: string
      - description: Date from (YYYY-MM-DD)
        in: query
        name: dateFrom
        type: string
      - description: Date to (YYYY-MM-DD)
        in: query
        name: dateTo
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all chat schedules
      tags:
      - Chat Schedule
    post:
      description: API for creating a new chat schedule
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ChatScheduleCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create chat schedule
      tags:
      - Chat Schedule
  /chat/schedules/{id}:
    delete:
      description: API for deleting chat schedule (only creator can delete)
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Schedule ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete chat schedule
      tags:
      - Chat Schedule
    get:
      description: API for getting one chat schedule
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Schedule ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one chat schedule
      tags:
      - Chat Schedule
    put:
      description: API for updating chat schedule (only creator can update)
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Schedule ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ChatScheduleUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update chat schedule
      tags:
      - Chat Schedule
  /chat/schedules/{id}/reminder:
    post:
      description: API for sending reminder for a chat schedule (only creator can
        send)
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Schedule ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Send schedule reminder
      tags:
      - Chat Schedule
  /chat/schedules/status/{status}:
    get:
      description: API for getting chat schedules by status
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Schedule status (scheduled, ongoing, completed, cancelled)
        in: path
        name: status
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get schedules by status
      tags:
      - Chat Schedule
  /chat/schedules/upcoming:
    get:
      description: API for getting upcoming chat schedules for authenticated user
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - default: 10
        description: Limit number of results
        in: query
        name: limit
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get upcoming schedules
      tags:
      - Chat Schedule
  /chat/sessions:
    get:
      description: API for getting all chat sessions for authenticated user
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat type (personal or group)
        in: query
        name: type
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all chat sessions
      tags:
      - Chat
    post:
      description: API for creating a new chat session (personal or group)
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ChatSessionCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create chat session
      tags:
      - Chat
  /chat/sessions/{chatSessionId}/participants:
    delete:
      description: API for removing a participant from a chat session (creator can
        remove anyone, user can remove themselves)
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Session ID
        in: path
        name: chatSessionId
        required: true
        type: integer
      - description: Participant User ID
        in: query
        name: participantUserId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Remove participant from chat session
      tags:
      - Chat
    post:
      description: API for adding a participant to a chat session (only creator can
        add)
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Session ID
        in: path
        name: chatSessionId
        required: true
        type: integer
      - description: Participant User ID
        in: query
        name: participantUserId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Add participant to chat session
      tags:
      - Chat
  /chat/sessions/{id}:
    delete:
      description: API for deleting chat session (only creator can delete)
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Session ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete chat session
      tags:
      - Chat
    get:
      description: API for getting one chat session
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Session ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one chat session
      tags:
      - Chat
    put:
      description: API for updating chat session (only creator can update)
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Chat Session ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ChatSessionUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update chat session
      tags:
      - Chat
  /cities:
    get:
      description: API for getting all Cities
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get all Cities
      tags:
      - Untags
    post:
      description: API for create Cities
      parameters:
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.CitiesCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Create Cities
      tags:
      - Untags
  /cities/{id}:
    delete:
      description: API for delete Cities
      parameters:
      - description: Cities ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Delete Cities
      tags:
      - Untags
    get:
      description: API for getting one Cities
      parameters:
      - description: Cities ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get one Cities
      tags:
      - Untags
    put:
      consumes:
      - application/json
      description: API for update Cities
      parameters:
      - description: Cities ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.CitiesUpdateRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Update Cities
      tags:
      - Untags
  /custom-static-pages:
    get:
      description: API for getting all CustomStaticPages
      parameters:
      - in: query
        name: description
        type: string
      - in: query
        name: htmlBody
        type: string
      - in: query
        name: slug
        type: string
      - in: query
        name: title
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all CustomStaticPages
      tags:
      - CustomStaticPages
    post:
      description: API for create CustomStaticPages
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.CustomStaticPagesCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create CustomStaticPages
      tags:
      - CustomStaticPages
  /custom-static-pages/{id}:
    delete:
      description: API for delete CustomStaticPages
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: CustomStaticPages ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete CustomStaticPages
      tags:
      - CustomStaticPages
    get:
      description: API for getting one CustomStaticPages
      parameters:
      - description: CustomStaticPages ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one CustomStaticPages
      tags:
      - CustomStaticPages
    put:
      description: API for update CustomStaticPages
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.CustomStaticPagesUpdateRequest'
      - description: CustomStaticPages ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update CustomStaticPages
      tags:
      - CustomStaticPages
  /custom-static-pages/slug/{slug}:
    get:
      description: API for getting one CustomStaticPages
      parameters:
      - description: CustomStaticPages Slug
        in: path
        name: slug
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one CustomStaticPages
      tags:
      - CustomStaticPages
  /districts:
    get:
      description: API for getting all Districts
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get all Districts
      tags:
      - Untags
    post:
      description: API for create Districts
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Create Districts
      tags:
      - Untags
  /districts/{id}:
    delete:
      description: API for delete Districts
      parameters:
      - description: Districts ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Delete Districts
      tags:
      - Untags
    get:
      description: API for getting one Districts
      parameters:
      - description: Districts ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get one Districts
      tags:
      - Untags
    put:
      description: API for update Districts
      parameters:
      - description: Districts ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Update Districts
      tags:
      - Untags
  /ebook-ratings:
    get:
      description: API for getting all Ebook Ratings
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - in: query
        name: ebookId
        type: integer
      - in: query
        name: isVerified
        type: boolean
      - in: query
        name: rating
        type: integer
      - in: query
        name: statusId
        type: integer
      - in: query
        name: userId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all Ebook Ratings
      tags:
      - Ebook Ratings
    post:
      description: API for creating ebook rating
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.EbookRatingsCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create ebook rating
      tags:
      - Ebook Ratings
  /ebook-ratings/{id}:
    delete:
      description: API for deleting ebook rating
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Rating ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete ebook rating
      tags:
      - Ebook Ratings
    put:
      description: API for updating ebook rating
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.EbookRatingsUpdateRequest'
      - description: Rating ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update ebook rating
      tags:
      - Ebook Ratings
  /ebook-ratings/ebook/{id}:
    get:
      description: API for getting ratings by ebook ID
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - description: Ebook ID
        in: path
        name: id
        required: true
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get ratings by ebook ID
      tags:
      - Ebook Ratings
  /ebook-ratings/stats/{id}:
    get:
      description: API for getting ebook rating statistics
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - description: Ebook ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get ebook rating statistics
      tags:
      - Ebook Ratings
  /ebook-ratings/summary/{id}:
    get:
      description: API for getting ebook rating summary with stats and recent reviews
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - description: Ebook ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get ebook rating summary
      tags:
      - Ebook Ratings
  /ebook-ratings/user:
    get:
      description: API for getting user ratings
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get user ratings
      tags:
      - Ebook Ratings
  /ebooks:
    get:
      description: API for getting all Ebooks
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - in: query
        name: authorId
        type: integer
      - in: query
        name: category
        type: string
      - in: query
        name: description
        type: string
      - in: query
        name: isPublished
        type: boolean
      - in: query
        name: maxPrice
        type: number
      - in: query
        name: minPrice
        type: number
      - in: query
        name: statusId
        type: integer
      - in: query
        name: tags
        type: string
      - in: query
        name: title
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all Ebooks
      tags:
      - Ebooks
    post:
      description: API for create Ebook
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.EbooksCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create Ebook
      tags:
      - Ebooks
  /ebooks/{id}:
    delete:
      description: API for delete Ebook
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Ebook ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete Ebook
      tags:
      - Ebooks
    get:
      description: API for getting one Ebook
      parameters:
      - description: Ebook ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Ebook
      tags:
      - Ebooks
    put:
      description: API for update Ebook
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.EbooksUpdateRequest'
      - description: Ebook ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update Ebook
      tags:
      - Ebooks
  /ebooks/download/{id}:
    get:
      description: API for Download PDF of Ebook
      parameters:
      - description: Ebook ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Download PDF Ebook
      tags:
      - Ebooks
  /ebooks/pdf/{id}:
    post:
      description: API for Save PDF File of Ebook
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Upload PDF file
        in: formData
        name: file
        required: true
        type: file
      - description: Ebook ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Save PDF File Ebook
      tags:
      - Ebooks
  /ebooks/purchase/{ebookId}:
    post:
      description: API for purchasing ebook
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Ebook ID
        in: path
        name: ebookId
        required: true
        type: integer
      - description: Payment Method
        in: query
        name: paymentMethod
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Purchase ebook
      tags:
      - Ebook Purchase
  /ebooks/purchases:
    get:
      description: API for getting user purchases
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get user purchases
      tags:
      - Ebook Purchase
  /ebooks/purchases/{id}:
    get:
      description: API for getting purchase by ID
      parameters:
      - description: Purchase ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get purchase by ID
      tags:
      - Ebook Purchase
  /ebooks/purchases/{id}/confirm:
    put:
      description: API for confirming payment
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Purchase ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Confirm payment
      tags:
      - Ebook Purchase
  /ebooks/purchases/{id}/payment:
    put:
      description: API for updating payment status
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Purchase ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/controller.PaymentStatusUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update payment status
      tags:
      - Ebook Purchase
  /ebooks/slug/{slug}:
    get:
      description: API for getting one Ebook by slug
      parameters:
      - description: Ebook Slug
        in: path
        name: slug
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Ebook by slug
      tags:
      - Ebooks
  /ebooks/statistic/summary:
    get:
      description: API for Summary Stats of Ebook
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: SummaryStats Ebook
      tags:
      - Ebooks
  /ebooks/thumbnail/{id}:
    post:
      description: API for Save Thumbnail of Ebook
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Upload thumbnail
        in: formData
        name: files
        required: true
        type: file
      - description: Ebook ID
        in: path
        name: id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Save Thumbnail Ebook
      tags:
      - Ebooks
  /ebooks/wishlist:
    get:
      description: API for getting user wishlist
      parameters:
      - description: Insert the X-Client-Key
        in: header
        name: X-Client-Key
        required: true
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get user wishlist
      tags:
      - Ebook Wishlist
  /ebooks/wishlist/{ebookId}:
    delete:
      description: API for removing ebook from wishlist
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Ebook ID
        in: path
        name: ebookId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Remove ebook from wishlist
      tags:
      - Ebook Wishlist
    post:
      description: API for adding ebook to wishlist
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Ebook ID
        in: path
        name: ebookId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Add ebook to wishlist
      tags:
      - Ebook Wishlist
  /ebooks/wishlist/check/{ebookId}:
    get:
      description: API for checking if ebook is in wishlist
      parameters:
      - description: Ebook ID
        in: path
        name: ebookId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Check if ebook is in wishlist
      tags:
      - Ebook Wishlist
  /education-history:
    get:
      description: API for getting all Education History for specific user
      parameters:
      - in: query
        name: educationLevel
        type: string
      - in: query
        name: graduationYear
        type: integer
      - in: query
        name: major
        type: string
      - in: query
        name: schoolName
        type: string
      - in: query
        name: userId
        required: true
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Get all Education History
      tags:
      - Education History
    post:
      description: API for create Education History
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: User ID
        in: query
        name: userId
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.EducationHistoryCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Create Education History
      tags:
      - Education History
  /education-history/{id}:
    delete:
      description: API for delete Education History
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Education History ID
        in: path
        name: id
        required: true
        type: integer
      - description: User ID
        in: query
        name: userId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Delete Education History
      tags:
      - Education History
    get:
      description: API for getting one Education History
      parameters:
      - description: Education History ID
        in: path
        name: id
        required: true
        type: integer
      - description: User ID
        in: query
        name: userId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Get one Education History
      tags:
      - Education History
    put:
      description: API for update Education History
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Education History ID
        in: path
        name: id
        required: true
        type: integer
      - description: User ID
        in: query
        name: userId
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.EducationHistoryUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Update Education History
      tags:
      - Education History
  /education-history/{id}/certificate:
    post:
      description: API for upload certificate image for Education History
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Education History ID
        in: path
        name: id
        required: true
        type: integer
      - description: User ID
        in: query
        name: userId
        required: true
        type: integer
      - description: Certificate image file
        in: formData
        name: certificate
        required: true
        type: file
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Upload Certificate for Education History
      tags:
      - Education History
  /feedbacks:
    get:
      description: API for getting all Feedbacks
      parameters:
      - in: query
        name: commentFromEmail
        type: string
      - in: query
        name: commentFromName
        type: string
      - in: query
        name: endDate
        type: string
      - in: query
        name: message
        type: string
      - in: query
        name: startDate
        type: string
      - in: query
        name: statusId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all Feedbacks
      tags:
      - Feedbacks
    post:
      description: API for create Feedbacks
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.FeedbacksCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create Feedbacks
      tags:
      - Feedbacks
  /feedbacks/{id}:
    delete:
      description: API for delete Feedbacks
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Feedbacks ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete Feedbacks
      tags:
      - Feedbacks
    get:
      description: API for getting one Feedbacks
      parameters:
      - description: Feedbacks ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Feedbacks
      tags:
      - Feedbacks
    put:
      description: API for update Feedbacks
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.FeedbacksUpdateRequest'
      - description: Feedbacks ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update Feedbacks
      tags:
      - Feedbacks
  /feedbacks/statistic/monthly:
    get:
      description: API for FeedbackMonthlyStats of Feedbacks
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: year
        in: query
        name: year
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: FeedbackMonthlyStats Feedbacks
      tags:
      - Feedbacks
  /magazine-files:
    get:
      description: API for getting all MagazineFiles
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all MagazineFiles
      tags:
      - Magazine Files
  /magazine-files/{id}:
    delete:
      description: API for delete MagazineFiles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: MagazineFiles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete MagazineFiles
      tags:
      - Magazine Files
    get:
      description: API for getting one MagazineFiles
      parameters:
      - description: MagazineFiles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one MagazineFiles
      tags:
      - Magazine Files
    put:
      description: API for update MagazineFiles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: MagazineFiles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update MagazineFiles
      tags:
      - Magazine Files
  /magazine-files/{magazineId}:
    post:
      description: API for create MagazineFiles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Upload file
        in: formData
        name: files
        required: true
        type: file
      - description: Magazine file title
        in: formData
        name: title
        required: true
        type: string
      - description: Magazine file description
        in: formData
        name: description
        required: true
        type: string
      - description: Magazine ID
        in: path
        name: magazineId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create MagazineFiles
      tags:
      - Magazine Files
  /magazine-files/viewer/{filename}:
    get:
      description: API for create MagazineFiles
      parameters:
      - description: Magazine File Name
        in: path
        name: filename
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create MagazineFiles
      tags:
      - Magazine Files
  /magazines:
    get:
      description: API for getting all Magazines
      parameters:
      - in: query
        name: createdById
        type: integer
      - in: query
        name: description
        type: string
      - in: query
        name: isPublish
        type: boolean
      - in: query
        name: pageUrl
        type: string
      - in: query
        name: statusId
        type: integer
      - in: query
        name: thumbnailPath
        type: string
      - in: query
        name: thumbnailUrl
        type: string
      - in: query
        name: title
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all Magazines
      tags:
      - Magazines
    post:
      description: API for create Magazines
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.MagazinesCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create Magazines
      tags:
      - Magazines
  /magazines/{id}:
    delete:
      description: API for delete Magazines
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Magazines ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete Magazines
      tags:
      - Magazines
    get:
      description: API for getting one Magazines
      parameters:
      - description: Magazines ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Magazines
      tags:
      - Magazines
    put:
      description: API for update Magazines
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Magazines ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.MagazinesUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update Magazines
      tags:
      - Magazines
  /magazines/thumbnail/{id}:
    post:
      description: API for Save Thumbnail of Magazines
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Magazine ID
        in: path
        name: id
        required: true
        type: integer
      - description: Upload thumbnail
        in: formData
        name: files
        required: true
        type: file
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Save Thumbnail Magazines
      tags:
      - Magazines
  /magazines/thumbnail/viewer/{thumbnailName}:
    get:
      description: API for View Thumbnail of Magazines
      parameters:
      - description: Magazines Thumbnail Name
        in: path
        name: thumbnailName
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Viewer Magazines Thumbnail
      tags:
      - Magazines
  /master-menus:
    get:
      description: API for getting all MasterMenus
      parameters:
      - in: query
        name: description
        type: string
      - in: query
        name: moduleId
        type: integer
      - in: query
        name: name
        type: string
      - in: query
        name: parentMenuId
        type: integer
      - in: query
        name: statusId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all MasterMenus
      tags:
      - MasterMenus
    post:
      description: API for create MasterMenus
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.MasterMenusCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create MasterMenus
      tags:
      - MasterMenus
  /master-menus/{id}:
    delete:
      description: API for delete MasterMenus
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: MasterMenus ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete MasterMenus
      tags:
      - MasterMenus
    get:
      description: API for getting one MasterMenus
      parameters:
      - description: MasterMenus ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one MasterMenus
      tags:
      - MasterMenus
    put:
      description: API for update MasterMenus
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: MasterMenus ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Update MasterMenus
      tags:
      - MasterMenus
  /master-modules:
    get:
      description: API for getting all MasterModules
      parameters:
      - in: query
        name: description
        type: string
      - in: query
        name: name
        type: string
      - in: query
        name: statusId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all MasterModules
      tags:
      - MasterModules
    post:
      description: API for create MasterModules
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.MasterModulesCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create MasterModules
      tags:
      - MasterModules
  /master-modules/{id}:
    delete:
      description: API for delete MasterModules
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: MasterModules ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete MasterModules
      tags:
      - MasterModules
    get:
      description: API for getting one MasterModules
      parameters:
      - description: MasterModules ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one MasterModules
      tags:
      - MasterModules
    put:
      description: API for update MasterModules
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: MasterModules ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.MasterModulesUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update MasterModules
      tags:
      - MasterModules
  /master-statuses:
    get:
      description: API for getting all MasterStatuses
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get all MasterStatuses
      tags:
      - Untags
    post:
      description: API for create MasterStatuses
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Create MasterStatuses
      tags:
      - Untags
  /master-statuses/{id}:
    delete:
      description: API for delete MasterStatuses
      parameters:
      - description: MasterStatuses ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Delete MasterStatuses
      tags:
      - Untags
    get:
      description: API for getting one MasterStatuses
      parameters:
      - description: MasterStatuses ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get one MasterStatuses
      tags:
      - Untags
    put:
      description: API for update MasterStatuses
      parameters:
      - description: MasterStatuses ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Update MasterStatuses
      tags:
      - Untags
  /provinces:
    get:
      description: API for getting all Provinces
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get all Provinces
      tags:
      - Untags
    post:
      description: API for create Provinces
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Create Provinces
      tags:
      - Untags
  /provinces/{id}:
    delete:
      description: API for delete Provinces
      parameters:
      - description: Provinces ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Delete Provinces
      tags:
      - Untags
    get:
      description: API for getting one Provinces
      parameters:
      - description: Provinces ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get one Provinces
      tags:
      - Untags
    put:
      description: API for update Provinces
      parameters:
      - description: Provinces ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Update Provinces
      tags:
      - Untags
  /research-journals:
    get:
      description: API for getting all Research Journals for authenticated user
      parameters:
      - in: query
        name: journalTitle
        type: string
      - in: query
        name: publishedYear
        type: integer
      - in: query
        name: publisher
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all Research Journals
      tags:
      - Research Journals
    post:
      description: API for create Research Journal
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ResearchJournalsCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create Research Journal
      tags:
      - Research Journals
  /research-journals/{id}:
    delete:
      description: API for delete Research Journal
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Research Journal ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Delete Research Journal
      tags:
      - Research Journals
    get:
      description: API for getting one Research Journal
      parameters:
      - description: Research Journal ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Research Journal
      tags:
      - Research Journals
    put:
      description: API for update Research Journal
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Research Journal ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.ResearchJournalsUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Update Research Journal
      tags:
      - Research Journals
  /subscription:
    get:
      description: API for getting all Subscription
      parameters:
      - in: query
        name: email
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all Subscription
      tags:
      - Subscription
    post:
      description: API for create Subscription
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.SubscriptionCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create Subscription
      tags:
      - Subscription
  /subscription/{id}:
    delete:
      description: API for delete Subscription
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Subscription ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete Subscription
      tags:
      - Subscription
    get:
      description: API for getting one Subscription
      parameters:
      - description: Subscription ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Subscription
      tags:
      - Subscription
    put:
      description: API for update Subscription
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.SubscriptionUpdateRequest'
      - description: Subscription ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update Subscription
      tags:
      - Subscription
  /user-levels:
    get:
      description: API for getting all UserLevels
      parameters:
      - in: query
        name: levelNumber
        type: integer
      - in: query
        name: name
        type: string
      - in: query
        name: parentLevelId
        type: integer
      - in: query
        name: provinceId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all UserLevels
      tags:
      - UserLevels
    post:
      description: API for create UserLevels
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserLevelsCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create UserLevels
      tags:
      - UserLevels
  /user-levels/{id}:
    delete:
      description: API for delete UserLevels
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: UserLevels ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: delete UserLevels
      tags:
      - UserLevels
    get:
      description: API for getting one UserLevels
      parameters:
      - description: UserLevels ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one UserLevels
      tags:
      - UserLevels
    put:
      description: API for update UserLevels
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserLevelsUpdateRequest'
      - description: UserLevels ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update UserLevels
      tags:
      - UserLevels
  /user-levels/alias/{alias}:
    get:
      description: API for getting one UserLevels
      parameters:
      - description: UserLevels Alias
        in: path
        name: alias
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one UserLevels
      tags:
      - UserLevels
  /user-levels/enable-approval:
    post:
      description: API for Enable Approval of Article
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserLevelsApprovalRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: EnableApproval Articles
      tags:
      - UserLevels
  /user-role-accesses:
    get:
      description: API for getting all UserRoleAccesses
      parameters:
      - in: query
        name: isActive
        required: true
        type: boolean
      - in: query
        name: menuId
        required: true
        type: integer
      - in: query
        name: userRoleId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all UserRoleAccesses
      tags:
      - UserRoleAccesses
    post:
      description: API for create UserRoleAccesses
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserRoleAccessesCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create UserRoleAccesses
      tags:
      - UserRoleAccesses
  /user-role-accesses/{id}:
    delete:
      description: API for delete UserRoleAccesses
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: UserRoleAccesses ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete UserRoleAccesses
      tags:
      - UserRoleAccesses
    get:
      description: API for getting one UserRoleAccesses
      parameters:
      - description: UserRoleAccesses ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one UserRoleAccesses
      tags:
      - UserRoleAccesses
    put:
      description: API for update UserRoleAccesses
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserRoleAccessesUpdateRequest'
      - description: UserRoleAccesses ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update UserRoleAccesses
      tags:
      - UserRoleAccesses
  /user-role-level-details:
    get:
      description: API for getting all UserRoleLevelDetails
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get all UserRoleLevelDetails
      tags:
      - Task
    post:
      description: API for create UserRoleLevelDetails
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Create UserRoleLevelDetails
      tags:
      - Task
  /user-role-level-details/{id}:
    delete:
      description: API for delete UserRoleLevelDetails
      parameters:
      - description: UserRoleLevelDetails ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: delete UserRoleLevelDetails
      tags:
      - Task
    get:
      description: API for getting one UserRoleLevelDetails
      parameters:
      - description: UserRoleLevelDetails ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: Get one UserRoleLevelDetails
      tags:
      - Task
    put:
      description: API for update UserRoleLevelDetails
      parameters:
      - description: UserRoleLevelDetails ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.Response'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/response.Response'
        "422":
          description: Unprocessable Entity
          schema:
            $ref: '#/definitions/response.Response'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.Response'
      security:
      - Bearer: []
      summary: update UserRoleLevelDetails
      tags:
      - Task
  /user-roles:
    get:
      description: API for getting all UserRoles
      parameters:
      - in: query
        name: code
        type: string
      - in: query
        name: description
        type: string
      - in: query
        name: name
        type: string
      - in: query
        name: statusId
        type: integer
      - in: query
        name: userLevelId
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all UserRoles
      tags:
      - UserRoles
    post:
      description: API for create UserRoles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserRolesCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create UserRoles
      tags:
      - UserRoles
  /user-roles/{id}:
    delete:
      description: API for delete UserRoles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: UserRoles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete UserRoles
      tags:
      - UserRoles
    get:
      description: API for getting one UserRoles
      parameters:
      - description: UserRoles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one UserRoles
      tags:
      - UserRoles
    put:
      description: API for update UserRoles
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserRolesUpdateRequest'
      - description: UserRoles ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update UserRoles
      tags:
      - UserRoles
  /users:
    get:
      description: API for getting all Users
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - in: query
        name: degree
        type: string
      - in: query
        name: email
        type: string
      - in: query
        name: fullname
        type: string
      - in: query
        name: genderType
        type: string
      - in: query
        name: identityGroup
        type: string
      - in: query
        name: identityGroupNumber
        type: string
      - in: query
        name: identityNumber
        type: string
      - in: query
        name: identityType
        type: string
      - in: query
        name: phoneNumber
        type: string
      - in: query
        name: statusId
        type: integer
      - in: query
        name: userRoleId
        type: integer
      - in: query
        name: username
        type: string
      - in: query
        name: workType
        type: string
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get all Users
      tags:
      - Users
    post:
      description: API for create Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UsersCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Create Users
      tags:
      - Users
  /users/{id}:
    delete:
      description: API for delete Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Users ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: delete Users
      tags:
      - Users
    put:
      description: API for update Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Users ID
        in: path
        name: id
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UsersUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: update Users
      tags:
      - Users
  /users/detail/{id}:
    get:
      description: API for getting one Users
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Users ID
        in: path
        name: id
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Users
      tags:
      - Users
  /users/email-validation:
    post:
      description: API for Email Validation Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserEmailValidationRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: EmailValidation Users
      tags:
      - Users
  /users/forgot-password:
    post:
      description: API for ForgotPassword Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserForgotPassword'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: ForgotPassword Users
      tags:
      - Users
  /users/info:
    get:
      description: API for ShowUserInfo
      parameters:
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: ShowInfo Users
      tags:
      - Users
  /users/login:
    post:
      description: API for Login Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserLogin'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Login Users
      tags:
      - Users
  /users/otp-request:
    post:
      description: API for OtpRequest Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserOtpRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: OtpRequest Users
      tags:
      - Users
  /users/otp-validation:
    post:
      description: API for OtpValidation Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserOtpValidation'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: OtpValidation Users
      tags:
      - Users
  /users/pareto-login:
    post:
      description: API for ParetoLogin Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserLogin'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: ParetoLogin Users
      tags:
      - Users
  /users/reset-password:
    post:
      description: API for ResetPassword Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserResetPassword'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: ResetPassword Users
      tags:
      - Users
  /users/save-password:
    post:
      description: API for SavePassword Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - default: Bearer <Add access token here>
        description: Insert your access token
        in: header
        name: Authorization
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserSavePassword'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: SavePassword Users
      tags:
      - Users
  /users/setup-email:
    post:
      description: API for Setup Email Users
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.UserEmailValidationRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: SetupEmail Users
      tags:
      - Users
  /users/username/{username}:
    get:
      description: API for getting one Users
      parameters:
      - description: Username
        in: path
        name: username
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "401":
          description: Unauthorized
          schema:
            $ref: '#/definitions/response.UnauthorizedError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      security:
      - Bearer: []
      summary: Get one Users
      tags:
      - Users
  /work-history:
    get:
      description: API for getting all Work History for specific user
      parameters:
      - in: query
        name: companyName
        type: string
      - description: filter for current job (EndDate is null)
        in: query
        name: isCurrent
        type: boolean
      - in: query
        name: jobTitle
        type: string
      - in: query
        name: userId
        required: true
        type: integer
      - in: query
        name: count
        type: integer
      - in: query
        name: limit
        type: integer
      - in: query
        name: nextPage
        type: integer
      - in: query
        name: page
        type: integer
      - in: query
        name: previousPage
        type: integer
      - in: query
        name: sort
        type: string
      - in: query
        name: sortBy
        type: string
      - in: query
        name: totalPage
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Get all Work History
      tags:
      - Work History
    post:
      description: API for create Work History
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: User ID
        in: query
        name: userId
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.WorkHistoryCreateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Create Work History
      tags:
      - Work History
  /work-history/{id}:
    delete:
      description: API for delete Work History
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Work History ID
        in: path
        name: id
        required: true
        type: integer
      - description: User ID
        in: query
        name: userId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Delete Work History
      tags:
      - Work History
    get:
      description: API for getting one Work History
      parameters:
      - description: Work History ID
        in: path
        name: id
        required: true
        type: integer
      - description: User ID
        in: query
        name: userId
        required: true
        type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Get one Work History
      tags:
      - Work History
    put:
      description: API for update Work History
      parameters:
      - description: Insert the X-Csrf-Token
        in: header
        name: X-Csrf-Token
        required: true
        type: string
      - description: Work History ID
        in: path
        name: id
        required: true
        type: integer
      - description: User ID
        in: query
        name: userId
        required: true
        type: integer
      - description: Required payload
        in: body
        name: payload
        required: true
        schema:
          $ref: '#/definitions/request.WorkHistoryUpdateRequest'
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/response.Response'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/response.BadRequestError'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/response.InternalServerError'
      summary: Update Work History
      tags:
      - Work History
swagger: "2.0"
