diff --git a/docs/openapi/read-api.json b/docs/openapi/read-api.json index dab696fa..c06f8812 100644 --- a/docs/openapi/read-api.json +++ b/docs/openapi/read-api.json @@ -3215,6 +3215,55 @@ ] } }, + "/api/inventory/stock-logs/": { + "get": { + "description": "Read access to `/api/inventory/stock-logs`.", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginatedEnvelope" + } + } + }, + "description": "Successful response" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorEnvelope" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorEnvelope" + } + } + }, + "description": "Forbidden" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "BearerAuth": [] + } + ], + "summary": "GET api / inventory / stock logs", + "tags": [ + "Inventory" + ] + } + }, "/api/inventory/transfers/": { "get": { "description": "Read access to `/api/inventory/transfers`.", @@ -4318,6 +4367,29 @@ "200": { "content": { "application/json": { + "example": { + "code": 200, + "data": [ + { + "created_at": "2026-01-01T00:00:00Z", + "created_user": { + "id": 1, + "name": "Admin" + }, + "id": 1, + "name": "FCR Broiler Standard", + "updated_at": "2026-01-01T00:00:00Z" + } + ], + "message": "Get all fcrs successfully", + "meta": { + "limit": 10, + "page": 1, + "total_pages": 1, + "total_results": 1 + }, + "status": "success" + }, "schema": { "$ref": "#/components/schemas/PaginatedEnvelope" } @@ -4379,6 +4451,41 @@ "200": { "content": { "application/json": { + "example": { + "code": 200, + "data": { + "created_at": "2026-01-01T00:00:00Z", + "created_user": { + "id": 1, + "name": "Admin" + }, + "fcr_standards": [ + { + "fcr_number": 1.2, + "id": 1, + "mortality": 0.5, + "weight": 0.5 + }, + { + "fcr_number": 1.35, + "id": 2, + "mortality": 0.3, + "weight": 1 + }, + { + "fcr_number": 1.5, + "id": 3, + "mortality": 0.25, + "weight": 1.5 + } + ], + "id": 1, + "name": "FCR Broiler Standard", + "updated_at": "2026-01-01T00:00:00Z" + }, + "message": "Get fcr successfully", + "status": "success" + }, "schema": { "$ref": "#/components/schemas/SuccessEnvelope" } @@ -6457,6 +6564,126 @@ ] } }, + "/api/production/chickins/": { + "get": { + "description": "Read access to `/api/production/chickins`.", + "parameters": [ + { + "description": "Page number.", + "example": 1, + "in": "query", + "name": "page", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Page size.", + "example": 10, + "in": "query", + "name": "limit", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "description": "Project flock kandang id filter.", + "example": 1, + "in": "query", + "name": "project_flock_kandang_id", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "example": { + "code": 200, + "data": [ + { + "chick_in_date": "2026-01-01T00:00:00Z", + "created_at": "2026-01-01T00:00:00Z", + "created_user": { + "id": 1, + "name": "Admin" + }, + "id": 1, + "notes": "", + "pending_usage_qty": 0, + "product_warehouse": { + "id": 1, + "product": { + "id": 1, + "name": "DOC Broiler" + }, + "warehouse": { + "id": 1, + "name": "Gudang DOC" + } + }, + "product_warehouse_id": 1, + "project_flock_kandang_id": 1, + "updated_at": "2026-01-01T00:00:00Z", + "usage_qty": 10000 + } + ], + "message": "Get all chickins successfully", + "meta": { + "limit": 10, + "page": 1, + "total_pages": 1, + "total_results": 1 + }, + "status": "success" + }, + "schema": { + "$ref": "#/components/schemas/PaginatedEnvelope" + } + } + }, + "description": "Successful response" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorEnvelope" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorEnvelope" + } + } + }, + "description": "Forbidden" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "BearerAuth": [] + } + ], + "summary": "GET api / production / chickins", + "tags": [ + "Production" + ] + } + }, "/api/production/chickins/{id}": { "get": { "description": "Read access to `/api/production/chickins/:id`.", @@ -7517,6 +7744,47 @@ "200": { "content": { "application/json": { + "example": { + "code": 200, + "data": [ + { + "approval": { + "action": null, + "step_name": "Pengajuan", + "step_number": 1 + }, + "created_at": "2026-01-15T00:00:00Z", + "created_by": 1, + "created_user": { + "id": 1, + "name": "Admin" + }, + "economic_cutoff_date": "2026-01-20T00:00:00Z", + "effective_move_date": "2026-01-18T00:00:00Z", + "executed_at": null, + "from_project_flock": { + "flock_name": "Flock A Period 1", + "id": 1 + }, + "id": 1, + "notes": "", + "to_project_flock": { + "flock_name": "Flock B Period 1", + "id": 2 + }, + "transfer_date": "2026-01-15T00:00:00Z", + "transfer_number": "TL-00001" + } + ], + "message": "Get all transferLayings successfully", + "meta": { + "limit": 10, + "page": 1, + "total_pages": 1, + "total_results": 1 + }, + "status": "success" + }, "schema": { "$ref": "#/components/schemas/PaginatedEnvelope" } @@ -7700,6 +7968,69 @@ "200": { "content": { "application/json": { + "example": { + "code": 200, + "data": { + "approval": { + "action": null, + "step_name": "Pengajuan", + "step_number": 1 + }, + "created_at": "2026-01-15T00:00:00Z", + "created_by": 1, + "created_user": { + "id": 1, + "name": "Admin" + }, + "economic_cutoff_date": "2026-01-20T00:00:00Z", + "effective_move_date": "2026-01-18T00:00:00Z", + "executed_at": null, + "from_project_flock": { + "flock_name": "Flock A Period 1", + "id": 1 + }, + "id": 1, + "notes": "", + "sources": [ + { + "note": "", + "qty": 5000, + "source_project_flock_kandang": { + "id": 1, + "kandang": { + "id": 1, + "name": "Kandang A" + }, + "kandang_id": 1, + "project_flock_id": 1 + } + } + ], + "targets": [ + { + "note": "", + "qty": 5000, + "target_project_flock_kandang": { + "id": 2, + "kandang": { + "id": 2, + "name": "Kandang B" + }, + "kandang_id": 2, + "project_flock_id": 2 + } + } + ], + "to_project_flock": { + "flock_name": "Flock B Period 1", + "id": 2 + }, + "transfer_date": "2026-01-15T00:00:00Z", + "transfer_number": "TL-00001" + }, + "message": "Get transferLaying successfully", + "status": "success" + }, "schema": { "$ref": "#/components/schemas/SuccessEnvelope" } @@ -8912,6 +9243,55 @@ ] } }, + "/api/reports/hpp-v2-breakdown": { + "get": { + "description": "Read access to `/api/reports/hpp-v2-breakdown`.", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginatedEnvelope" + } + } + }, + "description": "Successful response" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorEnvelope" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorEnvelope" + } + } + }, + "description": "Forbidden" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "BearerAuth": [] + } + ], + "summary": "GET api / reports / hpp v2 breakdown", + "tags": [ + "Reports" + ] + } + }, "/api/reports/marketing": { "get": { "description": "Read access to `/api/reports/marketing`.", @@ -9555,6 +9935,55 @@ ] } }, + "/api/system-settings/": { + "get": { + "description": "Read access to `/api/system-settings`.", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginatedEnvelope" + } + } + }, + "description": "Successful response" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorEnvelope" + } + } + }, + "description": "Unauthorized" + }, + "403": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorEnvelope" + } + } + }, + "description": "Forbidden" + } + }, + "security": [ + { + "ApiKeyAuth": [] + }, + { + "BearerAuth": [] + } + ], + "summary": "GET api / system settings", + "tags": [ + "API" + ] + } + }, "/api/users/": { "get": { "description": "Read access to `/api/users`.", diff --git a/docs/openapi/read-api.yaml b/docs/openapi/read-api.yaml index f12674a4..6eaba560 100644 --- a/docs/openapi/read-api.yaml +++ b/docs/openapi/read-api.yaml @@ -2006,6 +2006,34 @@ paths: summary: GET api / inventory / product warehouses / :id tags: - Inventory + /api/inventory/stock-logs/: + get: + description: Read access to `/api/inventory/stock-logs`. + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEnvelope' + description: Successful response + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorEnvelope' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorEnvelope' + description: Forbidden + security: + - ApiKeyAuth: [] + - BearerAuth: [] + summary: GET api / inventory / stock logs + tags: + - Inventory /api/inventory/transfers/: get: description: Read access to `/api/inventory/transfers`. @@ -2686,6 +2714,23 @@ paths: "200": content: application/json: + example: + code: 200 + data: + - created_at: "2026-01-01T00:00:00Z" + created_user: + id: 1 + name: Admin + id: 1 + name: FCR Broiler Standard + updated_at: "2026-01-01T00:00:00Z" + message: Get all fcrs successfully + meta: + limit: 10 + page: 1 + total_pages: 1 + total_results: 1 + status: success schema: $ref: '#/components/schemas/PaginatedEnvelope' description: Successful response @@ -2722,6 +2767,31 @@ paths: "200": content: application/json: + example: + code: 200 + data: + created_at: "2026-01-01T00:00:00Z" + created_user: + id: 1 + name: Admin + fcr_standards: + - fcr_number: 1.2 + id: 1 + mortality: 0.5 + weight: 0.5 + - fcr_number: 1.35 + id: 2 + mortality: 0.3 + weight: 1 + - fcr_number: 1.5 + id: 3 + mortality: 0.25 + weight: 1.5 + id: 1 + name: FCR Broiler Standard + updated_at: "2026-01-01T00:00:00Z" + message: Get fcr successfully + status: success schema: $ref: '#/components/schemas/SuccessEnvelope' description: Successful response @@ -3994,6 +4064,86 @@ paths: summary: GET api / master data / warehouses / :id tags: - Master Data + /api/production/chickins/: + get: + description: Read access to `/api/production/chickins`. + parameters: + - description: Page number. + example: 1 + in: query + name: page + required: false + schema: + type: integer + - description: Page size. + example: 10 + in: query + name: limit + required: false + schema: + type: integer + - description: Project flock kandang id filter. + example: 1 + in: query + name: project_flock_kandang_id + required: false + schema: + type: integer + responses: + "200": + content: + application/json: + example: + code: 200 + data: + - chick_in_date: "2026-01-01T00:00:00Z" + created_at: "2026-01-01T00:00:00Z" + created_user: + id: 1 + name: Admin + id: 1 + notes: "" + pending_usage_qty: 0 + product_warehouse: + id: 1 + product: + id: 1 + name: DOC Broiler + warehouse: + id: 1 + name: Gudang DOC + product_warehouse_id: 1 + project_flock_kandang_id: 1 + updated_at: "2026-01-01T00:00:00Z" + usage_qty: 10000 + message: Get all chickins successfully + meta: + limit: 10 + page: 1 + total_pages: 1 + total_results: 1 + status: success + schema: + $ref: '#/components/schemas/PaginatedEnvelope' + description: Successful response + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorEnvelope' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorEnvelope' + description: Forbidden + security: + - ApiKeyAuth: [] + - BearerAuth: [] + summary: GET api / production / chickins + tags: + - Production /api/production/chickins/{id}: get: description: Read access to `/api/production/chickins/:id`. @@ -4664,6 +4814,38 @@ paths: "200": content: application/json: + example: + code: 200 + data: + - approval: + action: null + step_name: Pengajuan + step_number: 1 + created_at: "2026-01-15T00:00:00Z" + created_by: 1 + created_user: + id: 1 + name: Admin + economic_cutoff_date: "2026-01-20T00:00:00Z" + effective_move_date: "2026-01-18T00:00:00Z" + executed_at: null + from_project_flock: + flock_name: Flock A Period 1 + id: 1 + id: 1 + notes: "" + to_project_flock: + flock_name: Flock B Period 1 + id: 2 + transfer_date: "2026-01-15T00:00:00Z" + transfer_number: TL-00001 + message: Get all transferLayings successfully + meta: + limit: 10 + page: 1 + total_pages: 1 + total_results: 1 + status: success schema: $ref: '#/components/schemas/PaginatedEnvelope' description: Successful response @@ -4700,6 +4882,53 @@ paths: "200": content: application/json: + example: + code: 200 + data: + approval: + action: null + step_name: Pengajuan + step_number: 1 + created_at: "2026-01-15T00:00:00Z" + created_by: 1 + created_user: + id: 1 + name: Admin + economic_cutoff_date: "2026-01-20T00:00:00Z" + effective_move_date: "2026-01-18T00:00:00Z" + executed_at: null + from_project_flock: + flock_name: Flock A Period 1 + id: 1 + id: 1 + notes: "" + sources: + - note: "" + qty: 5000 + source_project_flock_kandang: + id: 1 + kandang: + id: 1 + name: Kandang A + kandang_id: 1 + project_flock_id: 1 + targets: + - note: "" + qty: 5000 + target_project_flock_kandang: + id: 2 + kandang: + id: 2 + name: Kandang B + kandang_id: 2 + project_flock_id: 2 + to_project_flock: + flock_name: Flock B Period 1 + id: 2 + transfer_date: "2026-01-15T00:00:00Z" + transfer_number: TL-00001 + message: Get transferLaying successfully + status: success schema: $ref: '#/components/schemas/SuccessEnvelope' description: Successful response @@ -5545,6 +5774,34 @@ paths: summary: GET api / reports / hpp per kandang tags: - Reports + /api/reports/hpp-v2-breakdown: + get: + description: Read access to `/api/reports/hpp-v2-breakdown`. + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEnvelope' + description: Successful response + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorEnvelope' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorEnvelope' + description: Forbidden + security: + - ApiKeyAuth: [] + - BearerAuth: [] + summary: GET api / reports / hpp v2 breakdown + tags: + - Reports /api/reports/marketing: get: description: Read access to `/api/reports/marketing`. @@ -5955,6 +6212,34 @@ paths: summary: GET api / sso / userinfo tags: - SSO + /api/system-settings/: + get: + description: Read access to `/api/system-settings`. + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedEnvelope' + description: Successful response + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorEnvelope' + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorEnvelope' + description: Forbidden + security: + - ApiKeyAuth: [] + - BearerAuth: [] + summary: GET api / system settings + tags: + - API /api/users/: get: description: Read access to `/api/users`.