diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 30df192..3e68783 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -17,6 +17,12 @@
android:theme="@style/Theme.Ecommerce_serang"
android:usesCleartextTraffic="true"
tools:targetApi="31">
+
+
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/CartItem.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/CartItem.kt
new file mode 100644
index 0000000..89bd4d0
--- /dev/null
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/CartItem.kt
@@ -0,0 +1,11 @@
+package com.alya.ecommerce_serang.data.api.dto
+
+import com.google.gson.annotations.SerializedName
+
+data class CartItem (
+ @SerializedName("product_id")
+ val productId: Int,
+
+ @SerializedName("quantity")
+ val quantity: Int
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/CourierCostRequest.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/CourierCostRequest.kt
new file mode 100644
index 0000000..0387371
--- /dev/null
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/CourierCostRequest.kt
@@ -0,0 +1,19 @@
+package com.alya.ecommerce_serang.data.api.dto
+
+import com.google.gson.annotations.SerializedName
+
+data class CourierCostRequest(
+ @SerializedName("address_id")
+ val addressId: Int,
+
+ @SerializedName("items")
+ val itemCost: CostProduct
+)
+
+data class CostProduct (
+ @SerializedName("product_id")
+ val productId: Int,
+
+ @SerializedName("quantity")
+ val quantity: Int
+)
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/OrderListResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/OrderListResponse.kt
deleted file mode 100644
index 3ea9f47..0000000
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/OrderListResponse.kt
+++ /dev/null
@@ -1,91 +0,0 @@
-package com.alya.ecommerce_serang.data.api.response
-
-import com.google.gson.annotations.SerializedName
-
-data class OrderListResponse(
-
- @field:SerializedName("orders")
- val orders: List,
-
- @field:SerializedName("message")
- val message: String
-)
-
-data class OrdersItem(
-
- @field:SerializedName("receipt_num")
- val receiptNum: String,
-
- @field:SerializedName("latitude")
- val latitude: String,
-
- @field:SerializedName("created_at")
- val createdAt: String,
-
- @field:SerializedName("voucher_code")
- val voucherCode: String? = null,
-
- @field:SerializedName("updated_at")
- val updatedAt: String,
-
- @field:SerializedName("street")
- val street: String,
-
- @field:SerializedName("longitude")
- val longitude: String,
-
- @field:SerializedName("shipment_status")
- val shipmentStatus: String,
-
- @field:SerializedName("order_items")
- val orderItems: List,
-
- @field:SerializedName("is_store_location")
- val isStoreLocation: Boolean,
-
- @field:SerializedName("voucher_name")
- val voucherName: String? = null,
-
- @field:SerializedName("address_id")
- val addressId: Int,
-
- @field:SerializedName("payment_method_id")
- val paymentMethodId: Int,
-
- @field:SerializedName("total_amount")
- val totalAmount: String,
-
- @field:SerializedName("user_id")
- val userId: Int,
-
- @field:SerializedName("province_id")
- val provinceId: Int,
-
- @field:SerializedName("courier")
- val courier: String,
-
- @field:SerializedName("subdistrict")
- val subdistrict: String,
-
- @field:SerializedName("service")
- val service: String,
-
- @field:SerializedName("shipment_price")
- val shipmentPrice: String,
-
- @field:SerializedName("voucher_id")
- val voucherId: Int? = null,
-
- @field:SerializedName("detail")
- val detail: String,
-
- @field:SerializedName("postal_code")
- val postalCode: String,
-
- @field:SerializedName("order_id")
- val orderId: Int,
-
- @field:SerializedName("city_id")
- val cityId: Int
-)
-
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/LoginResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/auth/LoginResponse.kt
similarity index 81%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/LoginResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/auth/LoginResponse.kt
index 58c9206..4e8a8f6 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/LoginResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/auth/LoginResponse.kt
@@ -1,4 +1,4 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.auth
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/OtpResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/auth/OtpResponse.kt
similarity index 70%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/OtpResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/auth/OtpResponse.kt
index 60a87f5..4132711 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/OtpResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/auth/OtpResponse.kt
@@ -1,4 +1,4 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.auth
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/RegisterResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/auth/RegisterResponse.kt
similarity index 92%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/RegisterResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/auth/RegisterResponse.kt
index 1136015..7d0b9a8 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/RegisterResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/auth/RegisterResponse.kt
@@ -1,4 +1,4 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.auth
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/OrderResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/order/CreateOrderResponse.kt
similarity index 87%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/OrderResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/order/CreateOrderResponse.kt
index 3bb707d..17ba185 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/OrderResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/order/CreateOrderResponse.kt
@@ -1,19 +1,19 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.order
import com.google.gson.annotations.SerializedName
-data class OrderResponse(
+data class CreateOrderResponse(
- @field:SerializedName("shipping")
+ @field:SerializedName("shipping")
val shipping: Shipping,
- @field:SerializedName("order_item")
+ @field:SerializedName("order_item")
val orderItem: List,
- @field:SerializedName("message")
+ @field:SerializedName("message")
val message: String,
- @field:SerializedName("order")
+ @field:SerializedName("order")
val order: Order
)
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/OrderDetailResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/order/OrderDetailResponse.kt
similarity index 52%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/OrderDetailResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/order/OrderDetailResponse.kt
index c3fcb24..fd145f6 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/OrderDetailResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/order/OrderDetailResponse.kt
@@ -1,13 +1,13 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.order
import com.google.gson.annotations.SerializedName
data class OrderDetailResponse(
- @field:SerializedName("orders")
+ @field:SerializedName("orders")
val orders: Orders,
- @field:SerializedName("message")
+ @field:SerializedName("message")
val message: String
)
@@ -40,90 +40,90 @@ data class OrderItemsItem(
data class Orders(
- @field:SerializedName("receipt_num")
+ @field:SerializedName("receipt_num")
val receiptNum: String,
- @field:SerializedName("latitude")
+ @field:SerializedName("latitude")
val latitude: String,
- @field:SerializedName("created_at")
+ @field:SerializedName("created_at")
val createdAt: String,
- @field:SerializedName("voucher_code")
+ @field:SerializedName("voucher_code")
val voucherCode: String? = null,
- @field:SerializedName("updated_at")
+ @field:SerializedName("updated_at")
val updatedAt: String,
- @field:SerializedName("etd")
+ @field:SerializedName("etd")
val etd: String,
- @field:SerializedName("street")
+ @field:SerializedName("street")
val street: String,
- @field:SerializedName("cancel_date")
+ @field:SerializedName("cancel_date")
val cancelDate: String,
- @field:SerializedName("longitude")
+ @field:SerializedName("longitude")
val longitude: String,
- @field:SerializedName("shipment_status")
+ @field:SerializedName("shipment_status")
val shipmentStatus: String,
- @field:SerializedName("order_items")
+ @field:SerializedName("order_items")
val orderItems: List,
- @field:SerializedName("auto_completed_at")
+ @field:SerializedName("auto_completed_at")
val autoCompletedAt: String,
- @field:SerializedName("is_store_location")
+ @field:SerializedName("is_store_location")
val isStoreLocation: Boolean,
- @field:SerializedName("voucher_name")
+ @field:SerializedName("voucher_name")
val voucherName: String? = null,
- @field:SerializedName("address_id")
+ @field:SerializedName("address_id")
val addressId: Int,
- @field:SerializedName("payment_method_id")
+ @field:SerializedName("payment_method_id")
val paymentMethodId: Int,
- @field:SerializedName("cancel_reason")
+ @field:SerializedName("cancel_reason")
val cancelReason: String,
- @field:SerializedName("total_amount")
+ @field:SerializedName("total_amount")
val totalAmount: String,
- @field:SerializedName("user_id")
+ @field:SerializedName("user_id")
val userId: Int,
- @field:SerializedName("province_id")
+ @field:SerializedName("province_id")
val provinceId: Int,
- @field:SerializedName("courier")
+ @field:SerializedName("courier")
val courier: String,
- @field:SerializedName("subdistrict")
+ @field:SerializedName("subdistrict")
val subdistrict: String,
- @field:SerializedName("service")
+ @field:SerializedName("service")
val service: String,
- @field:SerializedName("shipment_price")
+ @field:SerializedName("shipment_price")
val shipmentPrice: String,
- @field:SerializedName("voucher_id")
+ @field:SerializedName("voucher_id")
val voucherId: Int? = null,
- @field:SerializedName("detail")
+ @field:SerializedName("detail")
val detail: String,
- @field:SerializedName("postal_code")
+ @field:SerializedName("postal_code")
val postalCode: String,
- @field:SerializedName("order_id")
+ @field:SerializedName("order_id")
val orderId: Int,
- @field:SerializedName("city_id")
+ @field:SerializedName("city_id")
val cityId: Int
)
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/order/OrderListResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/order/OrderListResponse.kt
new file mode 100644
index 0000000..a962817
--- /dev/null
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/order/OrderListResponse.kt
@@ -0,0 +1,91 @@
+package com.alya.ecommerce_serang.data.api.response.order
+
+import com.google.gson.annotations.SerializedName
+
+data class OrderListResponse(
+
+ @field:SerializedName("orders")
+ val orders: List,
+
+ @field:SerializedName("message")
+ val message: String
+)
+
+data class OrdersItem(
+
+ @field:SerializedName("receipt_num")
+ val receiptNum: String,
+
+ @field:SerializedName("latitude")
+ val latitude: String,
+
+ @field:SerializedName("created_at")
+ val createdAt: String,
+
+ @field:SerializedName("voucher_code")
+ val voucherCode: String? = null,
+
+ @field:SerializedName("updated_at")
+ val updatedAt: String,
+
+ @field:SerializedName("street")
+ val street: String,
+
+ @field:SerializedName("longitude")
+ val longitude: String,
+
+ @field:SerializedName("shipment_status")
+ val shipmentStatus: String,
+
+ @field:SerializedName("order_items")
+ val orderItems: List,
+
+ @field:SerializedName("is_store_location")
+ val isStoreLocation: Boolean,
+
+ @field:SerializedName("voucher_name")
+ val voucherName: String? = null,
+
+ @field:SerializedName("address_id")
+ val addressId: Int,
+
+ @field:SerializedName("payment_method_id")
+ val paymentMethodId: Int,
+
+ @field:SerializedName("total_amount")
+ val totalAmount: String,
+
+ @field:SerializedName("user_id")
+ val userId: Int,
+
+ @field:SerializedName("province_id")
+ val provinceId: Int,
+
+ @field:SerializedName("courier")
+ val courier: String,
+
+ @field:SerializedName("subdistrict")
+ val subdistrict: String,
+
+ @field:SerializedName("service")
+ val service: String,
+
+ @field:SerializedName("shipment_price")
+ val shipmentPrice: String,
+
+ @field:SerializedName("voucher_id")
+ val voucherId: Int? = null,
+
+ @field:SerializedName("detail")
+ val detail: String,
+
+ @field:SerializedName("postal_code")
+ val postalCode: String,
+
+ @field:SerializedName("order_id")
+ val orderId: Int,
+
+ @field:SerializedName("city_id")
+ val cityId: Int
+)
+
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/AllProductResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/AllProductResponse.kt
similarity index 81%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/AllProductResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/AllProductResponse.kt
index e45093f..000d52c 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/AllProductResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/AllProductResponse.kt
@@ -1,4 +1,4 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.product
import com.alya.ecommerce_serang.data.api.dto.ProductsItem
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/AllStoreResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/AllStoreResponse.kt
similarity index 79%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/AllStoreResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/AllStoreResponse.kt
index 4d2f860..dd02833 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/AllStoreResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/AllStoreResponse.kt
@@ -1,13 +1,13 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.product
import com.google.gson.annotations.SerializedName
data class AllStoreResponse(
- @field:SerializedName("store")
+ @field:SerializedName("store")
val store: AllStore,
- @field:SerializedName("message")
+ @field:SerializedName("message")
val message: String
)
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/CategoryResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/CategoryResponse.kt
similarity index 81%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/CategoryResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/CategoryResponse.kt
index 26867ca..1411ff2 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/CategoryResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/CategoryResponse.kt
@@ -1,4 +1,4 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.product
import com.alya.ecommerce_serang.data.api.dto.CategoryItem
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/DetailStoreProductResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/DetailStoreProductResponse.kt
similarity index 80%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/DetailStoreProductResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/DetailStoreProductResponse.kt
index 7380412..f44b5e8 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/DetailStoreProductResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/DetailStoreProductResponse.kt
@@ -1,13 +1,13 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.product
import com.google.gson.annotations.SerializedName
data class DetailStoreProductResponse(
- @field:SerializedName("store")
+ @field:SerializedName("store")
val store: StoreProduct,
- @field:SerializedName("message")
+ @field:SerializedName("message")
val message: String
)
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/ProductResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/ProductResponse.kt
similarity index 88%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/ProductResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/ProductResponse.kt
index 448ad92..7e9bfc0 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/ProductResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/ProductResponse.kt
@@ -1,13 +1,13 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.product
import com.google.gson.annotations.SerializedName
data class ProductResponse(
- @field:SerializedName("product")
+ @field:SerializedName("product")
val product: Product,
- @field:SerializedName("message")
+ @field:SerializedName("message")
val message: String
)
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/ReviewProductResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/ReviewProductResponse.kt
similarity index 83%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/ReviewProductResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/ReviewProductResponse.kt
index f9a927c..2ab569f 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/ReviewProductResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/ReviewProductResponse.kt
@@ -1,13 +1,13 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.product
import com.google.gson.annotations.SerializedName
data class ReviewProductResponse(
- @field:SerializedName("reviews")
+ @field:SerializedName("reviews")
val reviews: List,
- @field:SerializedName("message")
+ @field:SerializedName("message")
val message: String
)
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/StoreResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/StoreResponse.kt
similarity index 92%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/StoreResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/StoreResponse.kt
index 26f383e..e6739fa 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/StoreResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/product/StoreResponse.kt
@@ -1,19 +1,19 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.product
import com.google.gson.annotations.SerializedName
data class StoreResponse(
- @field:SerializedName("shipping")
+ @field:SerializedName("shipping")
val shipping: List,
- @field:SerializedName("payment")
+ @field:SerializedName("payment")
val payment: List,
- @field:SerializedName("store")
+ @field:SerializedName("store")
val store: Store,
- @field:SerializedName("message")
+ @field:SerializedName("message")
val message: String
)
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/AddressResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/profile/AddressResponse.kt
similarity index 87%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/AddressResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/profile/AddressResponse.kt
index 4a07f60..4b8dea1 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/AddressResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/profile/AddressResponse.kt
@@ -1,13 +1,13 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.profile
import com.google.gson.annotations.SerializedName
data class AddressResponse(
- @field:SerializedName("addresses")
+ @field:SerializedName("addresses")
val addresses: List,
- @field:SerializedName("message")
+ @field:SerializedName("message")
val message: String
)
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/CreateAddressResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/profile/CreateAddressResponse.kt
similarity index 70%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/CreateAddressResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/profile/CreateAddressResponse.kt
index bb1b71e..430dc8b 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/CreateAddressResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/profile/CreateAddressResponse.kt
@@ -1,4 +1,4 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.profile
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/ProfileResponse.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/profile/ProfileResponse.kt
similarity index 80%
rename from app/src/main/java/com/alya/ecommerce_serang/data/api/response/ProfileResponse.kt
rename to app/src/main/java/com/alya/ecommerce_serang/data/api/response/profile/ProfileResponse.kt
index d9fe08d..fa48907 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/response/ProfileResponse.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/response/profile/ProfileResponse.kt
@@ -1,4 +1,4 @@
-package com.alya.ecommerce_serang.data.api.response
+package com.alya.ecommerce_serang.data.api.response.profile
import com.alya.ecommerce_serang.data.api.dto.UserProfile
import com.google.gson.annotations.SerializedName
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/retrofit/ApiService.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/retrofit/ApiService.kt
index f1a0ed4..5f8b210 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/retrofit/ApiService.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/retrofit/ApiService.kt
@@ -1,22 +1,27 @@
package com.alya.ecommerce_serang.data.api.retrofit
+import com.alya.ecommerce_serang.data.api.dto.CartItem
+import com.alya.ecommerce_serang.data.api.dto.CourierCostRequest
import com.alya.ecommerce_serang.data.api.dto.CreateAddressRequest
import com.alya.ecommerce_serang.data.api.dto.LoginRequest
import com.alya.ecommerce_serang.data.api.dto.OrderRequest
import com.alya.ecommerce_serang.data.api.dto.OtpRequest
import com.alya.ecommerce_serang.data.api.dto.RegisterRequest
-import com.alya.ecommerce_serang.data.api.response.AddressResponse
-import com.alya.ecommerce_serang.data.api.response.AllProductResponse
-import com.alya.ecommerce_serang.data.api.response.CategoryResponse
-import com.alya.ecommerce_serang.data.api.response.DetailStoreProductResponse
-import com.alya.ecommerce_serang.data.api.response.LoginResponse
-import com.alya.ecommerce_serang.data.api.response.OrderResponse
-import com.alya.ecommerce_serang.data.api.response.OtpResponse
-import com.alya.ecommerce_serang.data.api.response.ProductResponse
-import com.alya.ecommerce_serang.data.api.response.ProfileResponse
-import com.alya.ecommerce_serang.data.api.response.RegisterResponse
-import com.alya.ecommerce_serang.data.api.response.ReviewProductResponse
-import com.alya.ecommerce_serang.data.api.response.StoreResponse
+import com.alya.ecommerce_serang.data.api.response.auth.LoginResponse
+import com.alya.ecommerce_serang.data.api.response.auth.OtpResponse
+import com.alya.ecommerce_serang.data.api.response.auth.RegisterResponse
+import com.alya.ecommerce_serang.data.api.response.cart.AddCartResponse
+import com.alya.ecommerce_serang.data.api.response.cart.ListCartResponse
+import com.alya.ecommerce_serang.data.api.response.order.CourierCostResponse
+import com.alya.ecommerce_serang.data.api.response.order.CreateOrderResponse
+import com.alya.ecommerce_serang.data.api.response.product.AllProductResponse
+import com.alya.ecommerce_serang.data.api.response.product.CategoryResponse
+import com.alya.ecommerce_serang.data.api.response.product.DetailStoreProductResponse
+import com.alya.ecommerce_serang.data.api.response.product.ProductResponse
+import com.alya.ecommerce_serang.data.api.response.product.ReviewProductResponse
+import com.alya.ecommerce_serang.data.api.response.product.StoreResponse
+import com.alya.ecommerce_serang.data.api.response.profile.AddressResponse
+import com.alya.ecommerce_serang.data.api.response.profile.ProfileResponse
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.GET
@@ -32,7 +37,7 @@ interface ApiService {
@POST("otp")
suspend fun getOTP(
@Body otpRequest: OtpRequest
- ):OtpResponse
+ ): OtpResponse
@POST("login")
suspend fun login(
@@ -67,13 +72,31 @@ interface ApiService {
@POST("order")
suspend fun postOrder(
@Body request: OrderRequest
- ): Response
+ ): Response
@GET("profile/address")
suspend fun getAddress(
+ ): Response
+
+ @POST("profile/addaddress")
+ suspend fun createAddress(
@Body addressRequest: CreateAddressRequest
): Response
+
@GET("mystore")
suspend fun getStore (): Response
+
+ @GET("cart_item")
+ suspend fun getCart (): Response
+
+ @POST("cart/add")
+ suspend fun addCart(
+ @Body cartRequest: CartItem
+ ): Response
+
+ @POST("couriercost")
+ suspend fun countCourierCost(
+ @Body courierCost : CourierCostRequest
+ ): CourierCostResponse
}
\ No newline at end of file
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/repository/OrderRepository.kt b/app/src/main/java/com/alya/ecommerce_serang/data/repository/OrderRepository.kt
index 3a0719e..c4c0114 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/repository/OrderRepository.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/repository/OrderRepository.kt
@@ -2,9 +2,9 @@ package com.alya.ecommerce_serang.data.repository
import android.util.Log
import com.alya.ecommerce_serang.data.api.dto.OrderRequest
-import com.alya.ecommerce_serang.data.api.response.OrderResponse
-import com.alya.ecommerce_serang.data.api.response.ProductResponse
-import com.alya.ecommerce_serang.data.api.response.StoreResponse
+import com.alya.ecommerce_serang.data.api.response.order.CreateOrderResponse
+import com.alya.ecommerce_serang.data.api.response.product.ProductResponse
+import com.alya.ecommerce_serang.data.api.response.product.StoreResponse
import com.alya.ecommerce_serang.data.api.retrofit.ApiService
import retrofit2.Response
@@ -24,7 +24,7 @@ class OrderRepository(private val apiService: ApiService) {
}
}
- suspend fun createOrder(orderRequest: OrderRequest): Response {
+ suspend fun createOrder(orderRequest: OrderRequest): Response {
return apiService.postOrder(orderRequest)
}
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/repository/ProductRepository.kt b/app/src/main/java/com/alya/ecommerce_serang/data/repository/ProductRepository.kt
index 519b5d4..2917c39 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/repository/ProductRepository.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/repository/ProductRepository.kt
@@ -3,8 +3,8 @@ package com.alya.ecommerce_serang.data.repository
import android.util.Log
import com.alya.ecommerce_serang.data.api.dto.CategoryItem
import com.alya.ecommerce_serang.data.api.dto.ProductsItem
-import com.alya.ecommerce_serang.data.api.response.ProductResponse
-import com.alya.ecommerce_serang.data.api.response.ReviewsItem
+import com.alya.ecommerce_serang.data.api.response.product.ProductResponse
+import com.alya.ecommerce_serang.data.api.response.product.ReviewsItem
import com.alya.ecommerce_serang.data.api.retrofit.ApiService
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/repository/UserRepository.kt b/app/src/main/java/com/alya/ecommerce_serang/data/repository/UserRepository.kt
index 0977624..15fde04 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/repository/UserRepository.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/repository/UserRepository.kt
@@ -4,8 +4,8 @@ import com.alya.ecommerce_serang.data.api.dto.LoginRequest
import com.alya.ecommerce_serang.data.api.dto.OtpRequest
import com.alya.ecommerce_serang.data.api.dto.RegisterRequest
import com.alya.ecommerce_serang.data.api.dto.UserProfile
-import com.alya.ecommerce_serang.data.api.response.LoginResponse
-import com.alya.ecommerce_serang.data.api.response.OtpResponse
+import com.alya.ecommerce_serang.data.api.response.auth.LoginResponse
+import com.alya.ecommerce_serang.data.api.response.auth.OtpResponse
import com.alya.ecommerce_serang.data.api.retrofit.ApiService
class UserRepository(private val apiService: ApiService) {
diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/auth/LoginViewModel.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/auth/LoginViewModel.kt
index 8b4c27d..a3da768 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/ui/auth/LoginViewModel.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/ui/auth/LoginViewModel.kt
@@ -4,7 +4,7 @@ import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import com.alya.ecommerce_serang.data.api.response.LoginResponse
+import com.alya.ecommerce_serang.data.api.response.auth.LoginResponse
import com.alya.ecommerce_serang.data.repository.Result
import com.alya.ecommerce_serang.data.repository.UserRepository
import kotlinx.coroutines.launch
diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/auth/RegisterViewModel.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/auth/RegisterViewModel.kt
index cc0e751..8502ed0 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/ui/auth/RegisterViewModel.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/ui/auth/RegisterViewModel.kt
@@ -6,7 +6,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.alya.ecommerce_serang.data.api.dto.RegisterRequest
-import com.alya.ecommerce_serang.data.api.response.OtpResponse
+import com.alya.ecommerce_serang.data.api.response.auth.OtpResponse
import com.alya.ecommerce_serang.data.repository.Result
import com.alya.ecommerce_serang.data.repository.UserRepository
import kotlinx.coroutines.launch
diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/order/AddAddressActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/order/AddAddressActivity.kt
new file mode 100644
index 0000000..eaad1db
--- /dev/null
+++ b/app/src/main/java/com/alya/ecommerce_serang/ui/order/AddAddressActivity.kt
@@ -0,0 +1,21 @@
+package com.alya.ecommerce_serang.ui.order
+
+import android.os.Bundle
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import com.alya.ecommerce_serang.R
+
+class AddAddressActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
+ setContentView(R.layout.activity_add_address)
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
+ val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
+ insets
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/order/CheckoutViewModel.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/order/CheckoutViewModel.kt
index 7013cd0..3f7aa86 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/ui/order/CheckoutViewModel.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/ui/order/CheckoutViewModel.kt
@@ -7,11 +7,9 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.alya.ecommerce_serang.data.api.dto.CheckoutData
import com.alya.ecommerce_serang.data.api.dto.OrderRequest
-import com.alya.ecommerce_serang.data.api.response.AddressesItem
-import com.alya.ecommerce_serang.data.api.response.OrderResponse
-import com.alya.ecommerce_serang.data.api.response.PaymentItem
+import com.alya.ecommerce_serang.data.api.response.profile.AddressesItem
+import com.alya.ecommerce_serang.data.api.response.product.PaymentItem
import com.alya.ecommerce_serang.data.repository.OrderRepository
-import com.alya.ecommerce_serang.data.repository.Result
import kotlinx.coroutines.launch
class CheckoutViewModel(private val repository: OrderRepository) : ViewModel() {
diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/order/EditAddressActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/order/EditAddressActivity.kt
new file mode 100644
index 0000000..6ae6a61
--- /dev/null
+++ b/app/src/main/java/com/alya/ecommerce_serang/ui/order/EditAddressActivity.kt
@@ -0,0 +1,21 @@
+package com.alya.ecommerce_serang.ui.order
+
+import android.os.Bundle
+import androidx.activity.enableEdgeToEdge
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import com.alya.ecommerce_serang.R
+
+class EditAddressActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ enableEdgeToEdge()
+ setContentView(R.layout.activity_edit_address)
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
+ val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
+ insets
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/product/DetailProductActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/product/DetailProductActivity.kt
index ab07f8c..4857cb9 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/ui/product/DetailProductActivity.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/ui/product/DetailProductActivity.kt
@@ -12,8 +12,8 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.alya.ecommerce_serang.BuildConfig.BASE_URL
import com.alya.ecommerce_serang.R
import com.alya.ecommerce_serang.data.api.dto.ProductsItem
-import com.alya.ecommerce_serang.data.api.response.Product
-import com.alya.ecommerce_serang.data.api.response.ReviewsItem
+import com.alya.ecommerce_serang.data.api.response.product.Product
+import com.alya.ecommerce_serang.data.api.response.product.ReviewsItem
import com.alya.ecommerce_serang.data.api.retrofit.ApiConfig
import com.alya.ecommerce_serang.data.api.retrofit.ApiService
import com.alya.ecommerce_serang.data.repository.ProductRepository
diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/product/ProductViewModel.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/product/ProductViewModel.kt
index bd928b4..f837db4 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/ui/product/ProductViewModel.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/ui/product/ProductViewModel.kt
@@ -6,9 +6,9 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.alya.ecommerce_serang.data.api.dto.ProductsItem
-import com.alya.ecommerce_serang.data.api.response.Product
-import com.alya.ecommerce_serang.data.api.response.ReviewsItem
-import com.alya.ecommerce_serang.data.api.response.Store
+import com.alya.ecommerce_serang.data.api.response.product.Product
+import com.alya.ecommerce_serang.data.api.response.product.ReviewsItem
+import com.alya.ecommerce_serang.data.api.response.product.Store
import com.alya.ecommerce_serang.data.repository.ProductRepository
import com.alya.ecommerce_serang.data.repository.Result
import kotlinx.coroutines.launch
diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/product/ReviewsAdapter.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/product/ReviewsAdapter.kt
index 6588d28..7e4554e 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/ui/product/ReviewsAdapter.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/ui/product/ReviewsAdapter.kt
@@ -6,7 +6,7 @@ import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.alya.ecommerce_serang.R
-import com.alya.ecommerce_serang.data.api.response.ReviewsItem
+import com.alya.ecommerce_serang.data.api.response.product.ReviewsItem
import java.text.SimpleDateFormat
import java.util.Locale
import java.util.TimeZone
diff --git a/app/src/main/res/drawable/baseline_edit_24.xml b/app/src/main/res/drawable/baseline_edit_24.xml
new file mode 100644
index 0000000..3acaadb
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_edit_24.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/baseline_location_pin_24.xml b/app/src/main/res/drawable/baseline_location_pin_24.xml
new file mode 100644
index 0000000..1209fa8
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_location_pin_24.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/button_address_background.xml b/app/src/main/res/drawable/button_address_background.xml
new file mode 100644
index 0000000..4c2178f
--- /dev/null
+++ b/app/src/main/res/drawable/button_address_background.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/edit_text_background.xml b/app/src/main/res/drawable/edit_text_background.xml
new file mode 100644
index 0000000..2112d9e
--- /dev/null
+++ b/app/src/main/res/drawable/edit_text_background.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/spinner_address_background.xml b/app/src/main/res/drawable/spinner_address_background.xml
new file mode 100644
index 0000000..d70e841
--- /dev/null
+++ b/app/src/main/res/drawable/spinner_address_background.xml
@@ -0,0 +1,17 @@
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_add_address.xml b/app/src/main/res/layout/activity_add_address.xml
new file mode 100644
index 0000000..a65d055
--- /dev/null
+++ b/app/src/main/res/layout/activity_add_address.xml
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_address.xml b/app/src/main/res/layout/activity_address.xml
index 86c8374..6ad6c1d 100644
--- a/app/src/main/res/layout/activity_address.xml
+++ b/app/src/main/res/layout/activity_address.xml
@@ -7,4 +7,53 @@
android:layout_height="match_parent"
tools:context=".ui.order.AddressActivity">
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_edit_address.xml b/app/src/main/res/layout/activity_edit_address.xml
new file mode 100644
index 0000000..cce159a
--- /dev/null
+++ b/app/src/main/res/layout/activity_edit_address.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_shipping.xml b/app/src/main/res/layout/activity_shipping.xml
index 965bd3c..0d6ba87 100644
--- a/app/src/main/res/layout/activity_shipping.xml
+++ b/app/src/main/res/layout/activity_shipping.xml
@@ -5,6 +5,28 @@
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="@color/cardview_light_background"
tools:context=".ui.order.ShippingActivity">
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_card_address.xml b/app/src/main/res/layout/item_card_address.xml
new file mode 100644
index 0000000..99e411c
--- /dev/null
+++ b/app/src/main/res/layout/item_card_address.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_shipping_order.xml b/app/src/main/res/layout/item_shipping_order.xml
new file mode 100644
index 0000000..2d3ff48
--- /dev/null
+++ b/app/src/main/res/layout/item_shipping_order.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file