diff --git a/domain/src/main/java/com/sesameware/domain/model/IssueClass.kt b/domain/src/main/java/com/sesameware/domain/model/IssueClass.kt new file mode 100644 index 00000000..2fb88638 --- /dev/null +++ b/domain/src/main/java/com/sesameware/domain/model/IssueClass.kt @@ -0,0 +1,13 @@ +package com.sesameware.domain.model + +enum class IssueClass(val value: Int) { + DontRememberAnythingIssue(1), + ConfirmAddressByCourierIssue(2), + ConfirmAddressInOfficeIssue(3), + DeleteAddressIssue(4), + ServicesUnavailableIssue(5), + ComeInOfficeMyselfIssue(6), + ConnectOnlyNonHousesServices(7), + OrderCallback(8), + RequestRec(9) +} diff --git a/domain/src/main/java/com/sesameware/domain/model/request/CreateIssuesRequest.kt b/domain/src/main/java/com/sesameware/domain/model/request/CreateIssuesRequest.kt index fa42d8df..510e2544 100644 --- a/domain/src/main/java/com/sesameware/domain/model/request/CreateIssuesRequest.kt +++ b/domain/src/main/java/com/sesameware/domain/model/request/CreateIssuesRequest.kt @@ -1,5 +1,7 @@ package com.sesameware.domain.model.request +import com.sesameware.domain.model.IssueClass +import com.sesameware.domain.model.response.Issue import com.squareup.moshi.Json /** @@ -12,7 +14,9 @@ data class CreateIssuesRequest( @Json(name = "customFields") val customFields: CustomFields?, @Json(name = "actions") - val actions: List? + val actions: List?, + @Json(name = "class") + val cls: String ) { enum class TypeAction(var list: List = listOf()) { ACTION1(listOf("Начать работу", "Позвонить")), @@ -51,12 +55,13 @@ data class CreateIssuesRequest( data class Builder( var issue: Issue? = null, var customFields: CustomFields? = null, - var actions: List? = null + var actions: List? = null, + var cls: IssueClass? = null ) { fun issue(issue: Issue) = apply { this.issue = issue } fun customFields(customFields: CustomFields) = apply { this.customFields = customFields } fun actions(actions: List) = apply { this.actions = actions } - - fun build() = CreateIssuesRequest(issue, customFields, actions) + fun cls(cls: IssueClass) = apply { this.cls = cls } + fun build() = CreateIssuesRequest(issue, customFields, actions, cls?.value.toString()) } } diff --git a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/BaseIssueViewModel.kt b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/BaseIssueViewModel.kt index 92d06886..d484bccf 100644 --- a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/BaseIssueViewModel.kt +++ b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/BaseIssueViewModel.kt @@ -3,17 +3,16 @@ package com.sesameware.smartyard_oem.ui.main import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope -import org.threeten.bp.LocalDateTime -import org.threeten.bp.format.DateTimeFormatter import com.sesameware.domain.interactors.GeoInteractor import com.sesameware.domain.interactors.IssueInteractor +import com.sesameware.domain.model.IssueClass import com.sesameware.domain.model.request.CreateIssuesRequest -import com.sesameware.domain.model.request.CreateIssuesRequest.CustomFields -import com.sesameware.domain.model.request.CreateIssuesRequest.Issue -import com.sesameware.domain.model.request.CreateIssuesRequest.TypeAction +import com.sesameware.domain.model.request.CreateIssuesRequest.* import com.sesameware.smartyard_oem.Event import com.sesameware.smartyard_oem.GenericViewModel import com.sesameware.smartyard_oem.ui.main.address.models.IssueModel +import org.threeten.bp.LocalDateTime +import org.threeten.bp.format.DateTimeFormatter /** * @author Nail Shakurov @@ -41,7 +40,8 @@ abstract class BaseIssueViewModel( description: String, address: String?, customFields: CustomFields, - typeAction: TypeAction + typeAction: TypeAction, + cls: IssueClass ) { val project = "REM" val type = 32L @@ -64,7 +64,8 @@ abstract class BaseIssueViewModel( ) ).customFields( customFields - ).actions(typeAction.list) + ).actions(typeAction.list + ).cls(cls) .build() ) _navigateToIssueSuccessDialogAction.value = Event(Unit) diff --git a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/addressVerification/courier/CourierViewModel.kt b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/addressVerification/courier/CourierViewModel.kt index f786799f..020b1649 100644 --- a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/addressVerification/courier/CourierViewModel.kt +++ b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/addressVerification/courier/CourierViewModel.kt @@ -3,6 +3,7 @@ package com.sesameware.smartyard_oem.ui.main.address.addressVerification.courier import com.sesameware.data.prefs.PreferenceStorage import com.sesameware.domain.interactors.GeoInteractor import com.sesameware.domain.interactors.IssueInteractor +import com.sesameware.domain.model.IssueClass import com.sesameware.domain.model.request.CreateIssuesRequest.CustomFields import com.sesameware.domain.model.request.CreateIssuesRequest.TypeAction.ACTION2 import com.sesameware.smartyard_oem.ui.main.BaseIssueViewModel @@ -55,7 +56,8 @@ class CourierViewModel( x12440 = x12440, x10941 = x10941 ), - ACTION2 + ACTION2, + IssueClass.ConfirmAddressByCourierIssue ) } } diff --git a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/addressVerification/office/OfficeViewModel.kt b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/addressVerification/office/OfficeViewModel.kt index 98dab65f..f064883f 100644 --- a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/addressVerification/office/OfficeViewModel.kt +++ b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/addressVerification/office/OfficeViewModel.kt @@ -7,6 +7,7 @@ import com.sesameware.data.prefs.PreferenceStorage import com.sesameware.domain.interactors.AddressInteractor import com.sesameware.domain.interactors.GeoInteractor import com.sesameware.domain.interactors.IssueInteractor +import com.sesameware.domain.model.IssueClass import com.sesameware.domain.model.request.CreateIssuesRequest.CustomFields import com.sesameware.domain.model.request.CreateIssuesRequest.TypeAction.ACTION2 import com.sesameware.domain.model.response.Office @@ -77,7 +78,8 @@ class OfficeViewModel( x12440 = x12440, x10941 = x10941 ), - ACTION2 + ACTION2, + IssueClass.ConfirmAddressInOfficeIssue ) } } diff --git a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/auth/AuthViewModel.kt b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/auth/AuthViewModel.kt index d165a0ed..67709591 100644 --- a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/auth/AuthViewModel.kt +++ b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/auth/AuthViewModel.kt @@ -7,6 +7,7 @@ import com.sesameware.data.prefs.PreferenceStorage import com.sesameware.domain.interactors.AddressInteractor import com.sesameware.domain.interactors.GeoInteractor import com.sesameware.domain.interactors.IssueInteractor +import com.sesameware.domain.model.IssueClass import com.sesameware.domain.model.request.CreateIssuesRequest.CustomFields import com.sesameware.domain.model.request.CreateIssuesRequest.TypeAction.ACTION1 import com.sesameware.smartyard_oem.Event @@ -69,7 +70,8 @@ class AuthViewModel( x11841 = x11841, x12440 = x12440 ), - ACTION1 + ACTION1, + IssueClass.DontRememberAnythingIssue ) } diff --git a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/workSoon/courier/WorkSoonCourierViewModel.kt b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/workSoon/courier/WorkSoonCourierViewModel.kt index 8c2b66d5..244c707f 100644 --- a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/workSoon/courier/WorkSoonCourierViewModel.kt +++ b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/workSoon/courier/WorkSoonCourierViewModel.kt @@ -3,6 +3,7 @@ package com.sesameware.smartyard_oem.ui.main.address.workSoon.courier import com.sesameware.data.prefs.PreferenceStorage import com.sesameware.domain.interactors.GeoInteractor import com.sesameware.domain.interactors.IssueInteractor +import com.sesameware.domain.model.IssueClass import com.sesameware.domain.model.request.CreateIssuesRequest.CustomFields import com.sesameware.domain.model.request.CreateIssuesRequest.TypeAction.ACTION2 import com.sesameware.smartyard_oem.ui.main.BaseIssueViewModel @@ -48,7 +49,8 @@ class WorkSoonCourierViewModel( x12440 = x12440, x10941 = x10941 ), - ACTION2 + ACTION2, + IssueClass.ConfirmAddressInOfficeIssue ) } } diff --git a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/workSoon/office/WorkSoonOfficeViewModel.kt b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/workSoon/office/WorkSoonOfficeViewModel.kt index bdf09be1..c46a28bc 100644 --- a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/workSoon/office/WorkSoonOfficeViewModel.kt +++ b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/address/workSoon/office/WorkSoonOfficeViewModel.kt @@ -3,6 +3,7 @@ package com.sesameware.smartyard_oem.ui.main.address.workSoon.office import com.sesameware.data.prefs.PreferenceStorage import com.sesameware.domain.interactors.GeoInteractor import com.sesameware.domain.interactors.IssueInteractor +import com.sesameware.domain.model.IssueClass import com.sesameware.domain.model.request.CreateIssuesRequest import com.sesameware.domain.model.request.CreateIssuesRequest.CustomFields import com.sesameware.smartyard_oem.ui.main.BaseIssueViewModel @@ -55,7 +56,8 @@ class WorkSoonOfficeViewModel( x12440 = x12440, x10941 = x10941 ), - CreateIssuesRequest.TypeAction.ACTION1 + CreateIssuesRequest.TypeAction.ACTION1, + IssueClass.ComeInOfficeMyselfIssue ) } } diff --git a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/burger/BurgerViewModel.kt b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/burger/BurgerViewModel.kt index 8ace1936..2718cc22 100644 --- a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/burger/BurgerViewModel.kt +++ b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/burger/BurgerViewModel.kt @@ -8,6 +8,7 @@ import com.sesameware.domain.interactors.ExtInteractor import com.sesameware.domain.interactors.GeoInteractor import com.sesameware.domain.interactors.IssueInteractor import com.sesameware.domain.interactors.SipInteractor +import com.sesameware.domain.model.IssueClass import com.sesameware.domain.model.request.CreateIssuesRequest import com.sesameware.domain.model.request.ExtRequest import com.sesameware.smartyard_oem.ui.main.BaseIssueViewModel @@ -58,7 +59,8 @@ class BurgerViewModel( description, null, CreateIssuesRequest.CustomFields(x10011 = x10011, x12440 = x12440), - CreateIssuesRequest.TypeAction.ACTION1 + CreateIssuesRequest.TypeAction.ACTION1, + IssueClass.OrderCallback ) } diff --git a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/burger/cityCameras/CityCamerasViewModel.kt b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/burger/cityCameras/CityCamerasViewModel.kt index 76167c29..768a657a 100644 --- a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/burger/cityCameras/CityCamerasViewModel.kt +++ b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/burger/cityCameras/CityCamerasViewModel.kt @@ -9,6 +9,7 @@ import org.threeten.bp.format.DateTimeFormatter import com.sesameware.domain.interactors.CCTVInteractor import com.sesameware.domain.interactors.GeoInteractor import com.sesameware.domain.interactors.IssueInteractor +import com.sesameware.domain.model.IssueClass import com.sesameware.domain.model.request.CreateIssuesRequest import com.sesameware.domain.model.response.CCTVCityCameraData import com.sesameware.domain.model.response.CCTVYoutubeData @@ -69,7 +70,8 @@ class CityCamerasViewModel( description, null, CreateIssuesRequest.CustomFields(x10011 = x10011, x12440 = x12440), - CreateIssuesRequest.TypeAction.ACTION3 + CreateIssuesRequest.TypeAction.ACTION3, + IssueClass.RequestRec ) } diff --git a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/settings/accessAddress/dialogDeleteReason/DialogDeleteReasonViewModel.kt b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/settings/accessAddress/dialogDeleteReason/DialogDeleteReasonViewModel.kt index ff1d49c4..207fd5ba 100644 --- a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/settings/accessAddress/dialogDeleteReason/DialogDeleteReasonViewModel.kt +++ b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/settings/accessAddress/dialogDeleteReason/DialogDeleteReasonViewModel.kt @@ -4,6 +4,7 @@ import com.sesameware.data.prefs.PreferenceStorage import com.sesameware.domain.interactors.AddressInteractor import com.sesameware.domain.interactors.GeoInteractor import com.sesameware.domain.interactors.IssueInteractor +import com.sesameware.domain.model.IssueClass import com.sesameware.domain.model.request.CreateIssuesRequest.CustomFields import com.sesameware.domain.model.request.CreateIssuesRequest.TypeAction.ACTION2 import com.sesameware.smartyard_oem.ui.main.BaseIssueViewModel @@ -55,7 +56,8 @@ class DialogDeleteReasonViewModel( x12440 = x12440, x10941 = x10941 ), - ACTION2 + ACTION2, + IssueClass.DeleteAddressIssue ) } } diff --git a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/settings/addressSettings/AddressSettingsViewModel.kt b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/settings/addressSettings/AddressSettingsViewModel.kt index 099a3231..6e76c17f 100644 --- a/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/settings/addressSettings/AddressSettingsViewModel.kt +++ b/presentation/src/main/java/com/sesameware/smartyard_oem/ui/main/settings/addressSettings/AddressSettingsViewModel.kt @@ -6,6 +6,7 @@ import com.sesameware.data.prefs.PreferenceStorage import com.sesameware.domain.interactors.AddressInteractor import com.sesameware.domain.interactors.GeoInteractor import com.sesameware.domain.interactors.IssueInteractor +import com.sesameware.domain.model.IssueClass import com.sesameware.domain.model.TF import com.sesameware.domain.model.request.CreateIssuesRequest.CustomFields import com.sesameware.domain.model.request.CreateIssuesRequest.TypeAction.ACTION1 @@ -94,23 +95,23 @@ class AddressSettingsViewModel( } /** """issue"": { - ""project"": ""REM"", - ""summary"": ""Авто: Заявка с сайта"", - ""description"":ФИО: $как к вам обращаться$\nТелефон: $телефон$\nАдрес, введённый пользователем: $адрес$\nУдаление адреса из приложения. Причина $описание$ - ""type"": 32 - }, - ""customFields"": { - ""10011"": ""-1"", - ""11841"": $телефон, введенный пользователем$, - ""12440"": ""Приложение"", - ""10743"": $широта$, - ""10744"": $долгота$, - }, - ""actions"": [ - ""Начать работу"", - ""Позвонить "" - ] - }"*/ + ""project"": ""REM"", + ""summary"": ""Авто: Заявка с сайта"", + ""description"":ФИО: $как к вам обращаться$\nТелефон: $телефон$\nАдрес, введённый пользователем: $адрес$\nУдаление адреса из приложения. Причина $описание$ + ""type"": 32 + }, + ""customFields"": { + ""10011"": ""-1"", + ""11841"": $телефон, введенный пользователем$, + ""12440"": ""Приложение"", + ""10743"": $широта$, + ""10744"": $долгота$, + }, + ""actions"": [ + ""Начать работу"", + ""Позвонить "" + ] + }"*/ fun createIssue(address: String, reasonText: String, reasonList: String) { val summary = "Авто: Заявка с сайта" @@ -128,7 +129,8 @@ class AddressSettingsViewModel( x11841 = x11841, x12440 = x12440 ), - ACTION1 + ACTION1, + IssueClass.DeleteAddressIssue ) } }