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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +