upd: api ai

Deskripsi:
- document divisi
- swagger watcher

nb: blm selesai

NO Issues
This commit is contained in:
2025-09-17 17:32:43 +08:00
parent 006754a337
commit d3f4478bb1
2 changed files with 476 additions and 319 deletions

View File

@@ -41,6 +41,14 @@ components:
status:
type: integer
BaseResponse:
type: object
properties:
success:
type: boolean
message:
type: string
@@ -329,6 +337,176 @@ components:
$ref: '#/components/schemas/DiscussionComment'
# Discussion General
DiskusiUmumListResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
title:
type: string
desc:
type: string
createdAt:
type: string
format: date-time
totalKomentar:
type: integer
status:
type: string
group:
type: string
DiskusiUmumDetailResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
type: object
properties:
id:
type: string
isActive:
type: boolean
idGroup:
type: string
group:
type: string
title:
type: string
desc:
type: string
status:
type: string
createdAt:
type: string
format: date-time
DiskusiUmumMemberResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
type: array
items:
type: object
properties:
idUser:
type: string
name:
type: string
img:
type: string
nullable: true
DiskusiUmumCommentResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
comment:
type: string
createdAt:
type: string
format: date-time
idUser:
type: string
username:
type: string
img:
type: string
nullable: true
# Division (mirip Project, disederhanakan)
DivisiListResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
desc:
type: string
idGroup:
type: string
group:
type: string
jumlahMember:
type: integer
DivisiDetailResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
properties:
data:
type: object
properties:
id:
type: string
idVillage:
type: string
idGroup:
type: string
name:
type: string
desc:
type: string
isActive:
type: boolean
createdBy:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
member:
type: array
items:
type: object
properties:
id:
type: string
isAdmin:
type: boolean
idUser:
type: string
name:
type: string
img:
type: string
nullable: true
# Group
Group:
type: object
@@ -363,28 +541,6 @@ components:
- id
- name
# Discussion General
DiscussionGeneral:
type: object
properties:
id:
type: string
title:
type: string
desc:
type: string
user:
type: string
status:
type: integer
member:
type: array
items:
$ref: '#/components/schemas/User'
required:
- id
- title
# Project
Project:
type: object
@@ -405,28 +561,6 @@ components:
- id
- name
# Division (mirip Project, disederhanakan)
Division:
type: object
properties:
id:
type: string
name:
type: string
desc:
type: string
user:
type: string
isActive:
type: boolean
member:
type: array
items:
$ref: '#/components/schemas/User'
required:
- id
- name
# Task (mirip Project)
Task:
type: object
@@ -720,6 +854,153 @@ paths:
$ref: '#/components/schemas/DiscussionDetailResponse'
# Discussion General
/discussion-general:
get:
tags:
- DiscussionGeneral
summary: Get discussion general
parameters:
- name: desa
in: query
required: true
schema:
type: string
- name: group
in: query
schema:
type: string
- name: search
in: query
schema:
type: string
- name: status
in: query
schema:
type: string
enum: [open, close]
- name: active
in: query
schema:
type: boolean
- name: page
in: query
schema:
type: integer
- name: get
in: query
schema:
type: integer
responses:
'200':
description: List of discussions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DiskusiUmumListResponse'
/discussion-general/{id}:
get:
tags:
- DiscussionGeneral
summary: Get one discussion general
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: desa
in: query
required: true
schema:
type: string
- name: cat
in: query
schema:
type: string
enum: [detail, member, comment]
responses:
'200':
description: Discussion details
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/DiskusiUmumDetailResponse'
- $ref: '#/components/schemas/DiskusiUmumMemberResponse'
- $ref: '#/components/schemas/DiskusiUmumCommentResponse'
# Division
/division:
get:
tags:
- Division
summary: Get divisions
parameters:
- name: desa
in: query
required: true
schema:
type: string
- name: active
in: query
schema:
type: boolean
- name: group
in: query
schema:
type: string
- name: search
in: query
schema:
type: string
- name: page
in: query
schema:
type: integer
- name: get
in: query
schema:
type: integer
responses:
'200':
description: List of divisions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DivisiListResponse'
/division/{id}:
get:
tags:
- Division
summary: Get one division detail
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: desa
in: query
required: true
schema:
type: string
responses:
'200':
description: Division details
content:
application/json:
schema:
$ref: '#/components/schemas/DivisiDetailResponse'
# Home Data
/home:
get:
@@ -924,75 +1205,6 @@ paths:
schema:
$ref: '#/components/schemas/User'
# Discussion General
/discussion-general:
get:
tags:
- DiscussionGeneral
summary: Get discussion general
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: active
in: query
required: true
schema:
type: string
- name: group
in: query
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: List of discussions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DiscussionGeneral'
/discussion-general/{id}:
get:
tags:
- DiscussionGeneral
summary: Get one discussion general
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
responses:
'200':
description: Discussion details
content:
application/json:
schema:
$ref: '#/components/schemas/DiscussionGeneral'
# Project
/project:
get:
@@ -1067,208 +1279,6 @@ paths:
schema:
$ref: '#/components/schemas/Project'
# Division
/division:
get:
tags:
- Division
summary: Get divisions
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: active
in: query
schema:
type: string
- name: group
in: query
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: cat
in: query
schema:
type: string
- name: page
in: query
schema:
type: integer
responses:
'200':
description: List of divisions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Division'
/division/{id}:
get:
tags:
- Division
summary: Get one division detail
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
responses:
'200':
description: Division details
content:
application/json:
schema:
$ref: '#/components/schemas/Division'
/division/{id}/detail:
get:
tags:
- Division
summary: Get division one feature
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
enum: [jumlah, today-task, new-file, new-discussion, check-member, check-admin]
responses:
'200':
description: Feature data
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/division/{id}/member:
get:
tags:
- Division
summary: Get division members
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
responses:
'200':
description: List of members
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
/division/report:
get:
tags:
- Division
summary: Get division report
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: cat
in: query
required: true
schema:
type: string
enum: [table-progress, lainnya]
- name: date
in: query
required: true
schema:
type: string
- name: date-end
in: query
required: true
schema:
type: string
- name: division
in: query
required: true
schema:
type: string
- name: group
in: query
schema:
type: string
responses:
'200':
description: Report data
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
/division/more:
get:
tags:
- Division
summary: Get list division by id division
parameters:
- name: user
in: query
required: true
schema:
type: string
- name: search
in: query
required: true
schema:
type: string
- name: division
in: query
required: true
schema:
type: string
responses:
'200':
description: List of divisions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Division'
# Task
/task:
get:
@@ -1449,6 +1459,10 @@ tags:
description: Calendar events
- name: Discussion
description: Division discussions
- name: DiscussionGeneral
description: General discussions
- name: Division
description: Division management
- name: Home
description: Home and search
@@ -1458,12 +1472,8 @@ tags:
description: Position management
- name: User
description: User management
- name: DiscussionGeneral
description: General discussions
- name: Project
description: Project management
- name: Division
description: Division management
- name: Task
description: Task management
- name: Document