diff --git a/html/nha-mau.html b/html/nha-mau.html
index 5ed3618..5803370 100644
--- a/html/nha-mau.html
+++ b/html/nha-mau.html
@@ -316,13 +316,13 @@
@@ -336,13 +336,13 @@
@@ -356,13 +356,13 @@
@@ -376,13 +376,13 @@
diff --git a/lib/core/constants/api_constants.dart b/lib/core/constants/api_constants.dart
index 5d90e09..eca9722 100644
--- a/lib/core/constants/api_constants.dart
+++ b/lib/core/constants/api_constants.dart
@@ -338,6 +338,24 @@ class ApiConstants {
static const String getSampleProjectDetail =
'/building_material.building_material.api.sample_project.get_detail';
+ // ============================================================================
+ // Design Request Endpoints (Frappe ERPNext)
+ // ============================================================================
+
+ /// Get list of design requests (requires sid and csrf_token)
+ /// POST /api/method/building_material.building_material.api.design_request.get_list
+ /// Body: { "limit_start": 0, "limit_page_length": 0 }
+ /// Returns: { "message": [{ "name": "...", "subject": "...", "description": "...", "dateline": "...", "status": "...", "status_color": "..." }] }
+ static const String getDesignRequestList =
+ '/building_material.building_material.api.design_request.get_list';
+
+ /// Get detail of a design request (requires sid and csrf_token)
+ /// POST /api/method/building_material.building_material.api.design_request.get_detail
+ /// Body: { "name": "ISS-2025-00005" }
+ /// Returns: { "message": { "name": "...", "subject": "...", "description": "...", "dateline": "...", "status": "...", "status_color": "...", "files_list": [...] } }
+ static const String getDesignRequestDetail =
+ '/building_material.building_material.api.design_request.get_detail';
+
/// Create new project (legacy endpoint - may be deprecated)
/// POST /projects
static const String createProject = '/projects';
diff --git a/lib/features/showrooms/data/datasources/design_request_remote_datasource.dart b/lib/features/showrooms/data/datasources/design_request_remote_datasource.dart
new file mode 100644
index 0000000..de14bc7
--- /dev/null
+++ b/lib/features/showrooms/data/datasources/design_request_remote_datasource.dart
@@ -0,0 +1,96 @@
+/// Design Request Remote Data Source
+///
+/// Handles remote API calls for design requests.
+library;
+
+import 'package:worker/core/constants/api_constants.dart';
+import 'package:worker/core/network/dio_client.dart';
+import 'package:worker/features/showrooms/data/models/design_request_model.dart';
+
+/// Design Request Remote Data Source Interface
+abstract class DesignRequestRemoteDataSource {
+ /// Fetch list of design requests from API
+ Future> getDesignRequests({
+ int limitStart = 0,
+ int limitPageLength = 0,
+ });
+
+ /// Fetch detail of a design request by name
+ Future getDesignRequestDetail(String name);
+}
+
+/// Design Request Remote Data Source Implementation
+class DesignRequestRemoteDataSourceImpl implements DesignRequestRemoteDataSource {
+ const DesignRequestRemoteDataSourceImpl(this._dioClient);
+
+ final DioClient _dioClient;
+
+ /// Get list of design requests
+ ///
+ /// Calls: POST /api/method/building_material.building_material.api.design_request.get_list
+ /// Body: { "limit_start": 0, "limit_page_length": 0 }
+ /// Returns: List of design requests
+ @override
+ Future> getDesignRequests({
+ int limitStart = 0,
+ int limitPageLength = 0,
+ }) async {
+ try {
+ final response = await _dioClient.post