First Commit

This commit is contained in:
2026-05-31 10:17:09 +07:00
commit 17a9c69379
4547 changed files with 1170384 additions and 0 deletions
@@ -0,0 +1,318 @@
# API Quick Reference
Dokumen ini adalah cheat sheet endpoint Product Engineering IFC untuk kebutuhan implementasi cepat.
Dokumen ini bersifat rekomendasi implementasi dan dapat direvisi mengikuti perubahan backend.
Lihat detail lengkap di [BACKEND_TECHNICAL_GUIDE.md](BACKEND_TECHNICAL_GUIDE.md) dan [FRONTEND_TECHNICAL_GUIDE.md](FRONTEND_TECHNICAL_GUIDE.md).
## State Model Singkat
- Parse state: draft -> parsed | failed
- Approval state: draft -> in_validation -> waiting_production -> waiting_provisioning -> approved (dapat rejected pada tahap validasi atau approval)
## 1) JSON-RPC Envelope
Gunakan payload berikut untuk semua endpoint type json:
```json
{
"jsonrpc": "2.0",
"method": "call",
"params": {},
"id": 1
}
```
## 2) Session Endpoints
Authentication login endpoint:
- Primary: /api/session/login
- Fallback standar Odoo: /web/session/authenticate
### Login
- Route: /api/session/login
- Auth: none
- Params: db, login, password
Contoh params:
```json
{
"db": "odoo19",
"login": "user_backend",
"password": "******"
}
```
### Logout
- Route: /api/session/logout
- Auth: user
- Params: none
### Me
- Route: /api/session/me
- Auth: user
- Params: none
## 3) Document Endpoints
### List
- Route: /api/ifc/documents/list
- Auth: user
- Params opsional: limit, offset, search
### Create
- Route: /api/ifc/documents/create
- Auth: user
- Params wajib: name, file_data
- Params opsional: file_name, revision_note, company_id
Contoh params:
```json
{
"name": "IFC Docking Station",
"file_name": "docking_station.ifc",
"file_data": "<BASE64_IFC>",
"revision_note": "Initial upload"
}
```
### Revise
- Route: /api/ifc/documents/revise
- Auth: user
- Params wajib: document_id, file_data
- Params opsional: file_name, revision_note
### Parse
- Route: /api/ifc/documents/parse
- Auth: user
- Params wajib: document_id
## 4) Approval Endpoints
### Request Validation
- Route: /api/ifc/documents/approval/request-validation
- Params wajib: document_id
### Submit Approval
- Route: /api/ifc/documents/approval/submit
- Params wajib: document_id
### Approve Production
- Route: /api/ifc/documents/approval/approve-production
- Params wajib: document_id
- Role: manager produksi
### Approve Provisioning
- Route: /api/ifc/documents/approval/approve-provisioning
- Params wajib: document_id
- Role: manager provisioning
### Reject
- Route: /api/ifc/documents/approval/reject
- Params wajib: document_id
- Params opsional: note
### Back to Draft
- Route: /api/ifc/documents/approval/back-draft
- Params wajib: document_id
## 5) Activity Endpoints
### Add Activity
- Route: /api/ifc/documents/activities/add
- Params wajib: document_id, summary
- Params opsional: note, user_id, deadline
### List Activity
- Route: /api/ifc/documents/activities/list
- Params wajib: document_id
- Response: activities aktif dan history internal
## 6) BoM Endpoints
### Generate Estimated BoM
- Route: /api/ifc/documents/bom/generate
- Params wajib: document_id
### Get BoM Data
- Route: /api/ifc/documents/bom/get
- Params wajib: document_id
- Response: parsed_bom dan estimated_bom
### Create Permanent BoM If Availability Fulfilled
- Route: /api/ifc/documents/bom/create-permanent-if-available
- Params wajib: document_id
- Rule: hanya berhasil jika availability Estimated BoM terpenuhi
- Response: data permanent_bom yang terhubung ke IFC document
## 7) Temp IFC File Endpoints
### Generate Signed Temp URL
- Route: /api/ifc/documents/temp-file
- Params wajib: document_id
- Response penting: download_url, expires_in_minutes, expires_at_unix
### Download Temp File
- Route: /api/ifc/temp/<file_key>?doc_id=...&uid=...&exp=...&sig=...
- Method: GET
- Auth: user (session)
- Catatan: URL signed, ada expiry, terikat user dan dokumen
## 8) Inventory and Procurement Endpoints
### Check Availability vs Estimated BoM
- Route: /api/ifc/documents/inventory/check
- Params wajib: document_id
- Response: ringkasan all_available, total_shortage_qty, dan detail item per komponen
### Create Draft Purchase for Shortage
- Route: /api/ifc/documents/inventory/create-draft-purchase
- Params wajib: document_id
- Params opsional: vendor_id, only_shortage (default true)
- Response: daftar draft purchase.order yang dibuat
### Create Product from IFC BOM Line
- Route: /api/ifc/documents/inventory/create-product
- Params wajib: document_id, ifc_bom_line_id
- Response: data product existing/new + flag created
## 9) Manufacturing Order Endpoints
### Create MO If Availability Fulfilled
- Route: /api/ifc/documents/mo/create-if-available
- Params wajib: document_id
- Rule: auto memastikan Permanent BoM tersedia, lalu create MO dari Permanent BoM
- Response: data manufacturing order yang baru dibuat
### Create MO from Permanent BoM
- Route: /api/ifc/documents/mo/create-from-permanent-bom
- Params wajib: document_id
### Check All MOs Availability Summary
- Route: /api/ifc/documents/mo/check-all-availability
- Params wajib: document_id
- Response: summary all MOs + summary product requirement vs on hand
### Confirm All MOs If Available
- Route: /api/ifc/documents/mo/confirm-all-if-available
- Params wajib: document_id
- Rule: hanya confirm jika summary all MOs menunjukkan all_available = true
- Response: daftar MO yang dikonfirmasi
### Run End-to-End MO Pipeline
- Route: /api/ifc/documents/mo/run-pipeline
- Params wajib: document_id
- Params opsional: auto_confirm (default false)
- Alur: check estimated availability -> create permanent bom -> create mo from permanent bom -> check all mo summary -> optional confirm all mo
- Response: ringkasan lengkap tiap tahap pipeline
### Dry Run MO Pipeline (No Data Mutation)
- Route: /api/ifc/documents/mo/pipeline-dry-run
- Params wajib: document_id
- Alur: simulasi readiness tiap tahap pipeline tanpa create/update data
- Response: preview readiness step, estimated availability, existing MO summary
### Urutan Rekomendasi Eksekusi MO
1. /api/ifc/documents/inventory/check
2. /api/ifc/documents/bom/create-permanent-if-available
3. /api/ifc/documents/mo/create-from-permanent-bom
4. /api/ifc/documents/mo/check-all-availability
5. /api/ifc/documents/mo/confirm-all-if-available (hanya bila all_available = true)
## 10) Standard Success and Error
### Success
```json
{
"success": true,
"result": {}
}
```
### Error
```json
{
"success": false,
"error": {
"code": "BAD_REQUEST",
"message": "...",
"details": "optional"
}
}
```
## 11) Error Code Quick List
- BAD_REQUEST
- AUTH_FAILED
- NOT_FOUND
- ACCESS_DENIED
- CREATE_FAILED
- REVISION_FAILED
- PARSE_FAILED
- ACTION_FAILED
- ACTIVITY_FAILED
- BOM_FAILED
- DECODE_FAILED
- INVENTORY_FAILED
- PURCHASE_DRAFT_FAILED
- PRODUCT_CREATE_FAILED
- MO_CREATE_FAILED
- BOM_PERMANENT_FAILED
- MO_AVAILABILITY_FAILED
- MO_CONFIRM_FAILED
- MO_PIPELINE_FAILED
- MO_PIPELINE_DRY_RUN_FAILED
## 12) Integration Checklist
- Login session berhasil dan cookie terkirim otomatis.
- Upload create atau revise dokumen IFC sukses.
- Parse IFC sukses dan state berubah.
- Approval flow berjalan sesuai role.
- Activity add atau list berjalan per dokumen.
- Generate atau get BoM sukses.
- Create permanent BoM dari estimated BoM sukses.
- Cek inventory availability dan trigger draft purchase sukses.
- Endpoint create product dari IFC BOM line berjalan.
- Endpoint create MO dari permanent BoM berjalan.
- Endpoint check-all-MOs availability summary dan confirm-all-MOs berjalan.
- Endpoint run-pipeline berjalan untuk eksekusi flow end-to-end.
- Endpoint pipeline-dry-run berjalan untuk preview sebelum eksekusi real.
- Temp file URL bisa dipakai viewer.
- Jika URL expired, frontend meminta URL baru.