Created
July 24, 2020 17:37
-
-
Save jayanthrbharadwaj/b72c11bbc1ab79ba355fa802e3bb7339 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @startuml | |
| namespace alert { | |
| namespace domain { | |
| interface ActiveAlertCountInteractorContract { | |
| + getActiveAlertsCount(): Single<String> | |
| } | |
| class ActiveAlertCountInteractor { | |
| - alertsRepository: AlertsRepositoryContract | |
| } | |
| ActiveAlertCountInteractorContract <|-- ActiveAlertCountInteractor | |
| interface AlertFilterInteractorContract { | |
| + getFilterAttributes(filterValues: List<String>?, alertState: AlertStateEnum): Single<AlertFilterAttribute> | |
| } | |
| class AlertFilterInteractor { | |
| - alertsRepository: AlertsRepositoryContract | |
| } | |
| AlertFilterInteractorContract <|-- AlertFilterInteractor | |
| interface AlertListInteractorContract { | |
| + getAlerts(offset: Int, limit: Int, filterValues: List<String>?, alertState: AlertStateEnum): Flowable<AlertModelList> | |
| + searchAlerts(query: String, filterValues: List<String>?, limit: Int, offset: Int, alertState: AlertStateEnum): Flowable<AlertModelList> | |
| + getSyncFailedCount(): Single<Int> | |
| } | |
| interface AlertAssetSyncFailedInteractorContract { | |
| + getAssetSyncFailedAlerts(): Single<List<AssetSyncFailed>> | |
| } | |
| class AlertAssetSyncFailedInteractor { | |
| - alertsRepository: AlertsRepositoryContract | |
| } | |
| AlertAssetSyncFailedContract <|-- AlertAssetSyncFailedInteractor | |
| class AlertListInteractor { | |
| - alertsRepository: AlertsRepositoryContract | |
| } | |
| AlertListInteractorContract <|-- AlertListInteractor | |
| interface AlertDetailInteractorContract { | |
| + getAlertDetail(alertId: Int, alertState: AlertStateEnum): Single<AlertDetailModel> | |
| } | |
| class AlertDetailInteractor { | |
| - alertsRepository: AlertsRepositoryContract | |
| } | |
| AlertDetailInteractorContract <|-- AlertDetailInteractor | |
| interface AlertActionInteractorContract { | |
| + dismissAlerts(ids: List<Int>): Completable | |
| } | |
| class AlertActionInteractor { | |
| - alertsRepository: AlertsRepositoryContract | |
| } | |
| AlertActionInteractorContract <|-- AlertActionInteractor | |
| interface UserAlertSettingsInteractorContract { | |
| + getUserSettingsAlerts(): Single<UserAlertSettingsModelList> | |
| + saveUserSettingsAlert(alertSettingsModelList: UserAlertSettingsModelList): Completable | |
| } | |
| class UserAlertSettingsInteractor { | |
| - userAlertSettingsRepository: UserAlertSettingsRepositoryContract | |
| } | |
| UserAlertSettingsInteractorContract <|-- UserAlertSettingsInteractor | |
| namespace datamodel { | |
| class AlertModelList { | |
| + alertList: List<AlertModel> | |
| + totalAlertCount: Int | |
| } | |
| class AssetSyncFailed { | |
| - model: String? | |
| - manufacturer: String? | |
| - assetIdentifier: String | |
| - dateTimeStamp: String | |
| } | |
| class AlertModel { | |
| + alertId: String | |
| + displayName: String | |
| + displayDate: String | |
| + alertTypeModel: AlertTypeModel | |
| + alertStatusModel: AlertStatusModel | |
| } | |
| class AlertTypeModel { | |
| + alertCode: String | |
| + alertValue: String | |
| } | |
| class AlertStatusModel { | |
| + alertCode: String | |
| + alertValue: String | |
| } | |
| class AlertGroupModel { | |
| + code: String | |
| + value: String | |
| } | |
| interface BaseAlertDetailModel { | |
| + id: Int | |
| + alertType: AlertTypeModel | |
| + alertStatus: AlertStatusModel | |
| + alertGroup: AlertGroupModel | |
| + alertGeneratedDate: String | |
| + numOfDays: String | |
| + alertName: String | |
| + dismissedBy: String | |
| } | |
| class AlertDetailModel | |
| note top: Sealed class for alert detail | |
| class ServiceAlertDetailModel { | |
| + assetDescription: String | |
| + assetId: Int | |
| + assetName: String | |
| + currentLocation: String | |
| + inventoryNumber: String | |
| + inventoryWorker: String | |
| + lastServiceCompletedDate: String | |
| + lastServiceCost: String | |
| + lastServiceCurrency: String | |
| + lastServiceVendorName: String | |
| + lastServiceWorkerName: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + serviceDate: Date | |
| + serviceName: String | |
| + serviceType: AlertServiceTypeModel | |
| + serviceId: Int | |
| + scanCodeType: ScanCodeTypeModel | |
| } | |
| class TransferAlertDetailModel { | |
| + assetDescription: String | |
| + assetId: Int | |
| + assetName: String | |
| + currentLocation: String | |
| + defaultLocation: String | |
| + inventoryNumber: String | |
| + inventoryWorker: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + transferId: String | |
| + transferReturnDate: String | |
| + currentLocationId: Int | |
| + defaultLocationId: Int | |
| + responsibleEmployeeId: Int | |
| + scanCodeType: ScanCodeTypeModel | |
| } | |
| class WorkerAlertDetailModel{ | |
| + certificateDescription: String | |
| + certificateExpiryDate: String | |
| + certificateName: String | |
| + workerBadgeId: String | |
| + workerDesignation: String | |
| + workerId: Int | |
| + workerName: String | |
| } | |
| class OwnershipFleetAlertDetailModel { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + scanCodeType: ScanCodeTypeModel | |
| + fleetExchangeDate: Date? | |
| } | |
| class OwnershipRentalAlertDetailModel { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + scanCodeType: ScanCodeTypeModel | |
| + rentalReturnDate: Date? | |
| } | |
| class OwnershipLoanedAlertDetailModel { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + scanCodeType: ScanCodeTypeModel | |
| + loanEndDate: Date? | |
| } | |
| class OwnershipWarrantyAlertDetailModel { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + scanCodeType: ScanCodeTypeModel | |
| + warrantyExpirationDate: Date? | |
| } | |
| class GatewayOfflineAlertDetailModel{ | |
| + assetName: String? | |
| + assetId: Int | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String? | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String? | |
| + scanCode: String? | |
| + scanCodeType: ScanCodeTypeModel? | |
| + gatewayOfflineDate: Date? | |
| + storageAssetOfId: Int | |
| + storageAssetOf: String | |
| } | |
| class UnexpectedAssetRemovalAlertDetailModel{ | |
| + assetName: String? | |
| + assetId: Int | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String? | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String? | |
| + scanCode: String? | |
| + scanCodeType: ScanCodeTypeModel? | |
| + unexpectedRemovalDate: Date? | |
| + storageAssetOfId: Int | |
| + storageAssetOf: String | |
| } | |
| class AlertServiceTypeModel { | |
| + code: String | |
| + value: String | |
| } | |
| class ScanCodeTypeModel { | |
| + code: String | |
| + value: String | |
| } | |
| class UserAlertSettingsChannelInfoModel{ | |
| + isConsolidated: Boolean | |
| + isPerAlert: Boolean | |
| + isEnabled: Boolean | |
| } | |
| class UserAlertSettingsChannelModel{ | |
| + id: Int | |
| + code: String | |
| + userAlertSettingsChannelInfoModel: UserAlertSettingsChannelInfoModel | |
| } | |
| class UserAlertSettingsModel{ | |
| + id: Int | |
| + userAlertSettingsTypeModel: UserAlertSettingsTypeModel | |
| + userAlertSettingsChannelsModel: List<UserAlertSettingsChannelModel> | |
| } | |
| class UserAlertSettingsModelList { | |
| + userAlertSettingsModel:List<UserAlertSettingsModel> | |
| } | |
| class UserAlertSettingsTypeModel { | |
| + code:String | |
| + value:String | |
| } | |
| class AlertFilterAttribute { | |
| - groupName: List<String> | |
| - manufacturerName: List<String> | |
| - model: List<String> | |
| - scanCodeType: List<AlertFilterAttributeStatus> | |
| - status: List<AlertFilterAttributeStatus> | |
| - alertStatus: List<AlertFilterAttributeStatus> | |
| - alertName: List<String> | |
| - alertType: List<AlertFilterAttributeStatus> | |
| - activeStatus: List<AlertFilterAttributeStatus> | |
| - currentLocation: List<String> | |
| - currentLocationManager: List<String> | |
| - responsibleWorker: List<String> | |
| - inventoryWorker: List<String> | |
| - labels: List<String> | |
| } | |
| class AlertFilterAttributeStatus { | |
| - code: String | |
| - value: String | |
| } | |
| AlertModelList *-- AlertModel | |
| AlertModel *-- AlertTypeModel | |
| AlertDetailModel <|-- ServiceAlertDetailModel | |
| AlertDetailModel <|-- TransferAlertDetailModel | |
| AlertDetailModel <|-- WorkerAlertDetailModel | |
| AlertDetailModel <|-- OwnershipFleetAlertDetailModel | |
| AlertDetailModel <|-- OwnershipRentalAlertDetailModel | |
| AlertDetailModel <|-- OwnershipLoanedAlertDetailModel | |
| AlertDetailModel <|-- OwnershipWarrantyAlertDetailModel | |
| AlertDetailModel <|-- GatewayOfflineAlertDetailModel | |
| AlertDetailModel <|-- UnexpectedAssetRemovalAlertDetailModel | |
| BaseAlertDetailModel <|-- AlertDetailModel | |
| BaseAlertDetailModel *-- AlertGroupModel | |
| AlertFilterAttribute *-- AlertFilterAttributeStatus | |
| BaseAlertDetailModel *-- AlertTypeModel | |
| BaseAlertDetailModel *-- AlertStatusModel | |
| ServiceAlertDetailModel *-- ScanCodeTypeModel | |
| TransferAlertDetailModel *-- ScanCodeTypeModel | |
| OwnershipFleetAlertDetailModel *-- ScanCodeTypeModel | |
| OwnershipRentalAlertDetailModel *-- ScanCodeTypeModel | |
| OwnershipLoanedAlertDetailModel *-- ScanCodeTypeModel | |
| OwnershipWarrantyAlertDetailModel *-- ScanCodeTypeModel | |
| UserAlertSettingsModelList *-- UserAlertSettingsModel | |
| UserAlertSettingsChannelModel *-- UserAlertSettingsChannelInfoModel | |
| ServiceAlertDetailModel *-- AlertServiceTypeModel | |
| } | |
| } | |
| namespace model { | |
| namespace storage { | |
| interface AlertAssetSyncFailedStorageContract { | |
| + saveAsset(addAssetRecord: AlertAssetSyncFailedRecord): Completable | |
| + getAddedAssets(): Single<List<AddAssetRecord>> | |
| + clear(): Completable = addAssetDAO.clear() | |
| + deleteAssets(timeStamps:List<Long>): Single<Boolean> | |
| + getAssetsSyncFailedCount(): Single<Int> | |
| } | |
| class AlertAssetSyncFailedStorage { | |
| - AlertAssetSyncFailedDao | |
| } | |
| namespace datamodel { | |
| class AddAssetRecord { | |
| - dateTimeStamp: Long | |
| - model: String? | |
| - manufacturer: String? | |
| - scanCode: String? | |
| - inventoryNumber: String? | |
| - assetData: String? | |
| } | |
| } | |
| namespace dao { | |
| interface AlertAssetSyncFailedDaoContract { | |
| + saveAssetSyncFailed(addAssetRecord: AlertAssetSyncFailedRecord): Completable | |
| + getAssetsSyncFailedCount(): Single<Int> | |
| + getAssetsSyncFailed(): Single<List<AlertAssetSyncFailedRecord>> | |
| + getAssetsSyncFailedCount(): Single<Int> | |
| + deleteAssets(timeStamps: List<Long>): Single<Boolean> | |
| + clear(): Completable | |
| } | |
| class AlertAssetSyncFailedDao { | |
| - persistenceStorage: PersistenceStorageContract | |
| } | |
| } | |
| } | |
| namespace repository { | |
| interface AlertsRepositoryContract { | |
| + getActiveAlertsCount(): Single<String> | |
| + getAlerts(offset: Int, limit: Int, filterValues: List<String>?, alertState: AlertStateEnum): Flowable<Alerts> | |
| + searchAlerts(query: String, filterValues: List<String>?, limit: Int, offset: Int, alertState: AlertStateEnum): Flowable<Alerts> | |
| + getAlertDetail(id: Int, alertState: AlertStateEnum): Single<AlertDetail> | |
| + getFilterAttributes(filterValues: List<String>?, alertState: AlertStateEnum): Single<AlertFilterAttributeModel> | |
| + dismissAlerts(ids: List<Int>): Completable | |
| + getFailedSyncCount(): Single<Int> | |
| + getSyncFailedAssets(): Single<List<AssetSyncFailedModel>> | |
| } | |
| class AlertsRepository { | |
| - alertListService: AlertListServiceContract | |
| - alertDetailService: AlertDetailServiceContract | |
| - alertsService: AlertsServiceContract | |
| - alertAssetSyncFailedStorage: AlertAssetSyncFailedStorage | |
| } | |
| AlertsRepositoryContract <|-- AlertsRepository | |
| interface UserAlertSettingsRepositoryContract { | |
| + getUserAlertSettings(): Single<UserAlertSettingsList> | |
| + saveUserAlertSettings(saveResponseListUser: UserAlertSettingsList): Completable | |
| } | |
| class UserAlertSettingsRepository { | |
| - userAlertSettingsService: UserAlertSettingsServiceContract | |
| } | |
| UserAlertSettingsRepositoryContract <|-- UserAlertSettingsRepository | |
| namespace datamodel { | |
| class AssetSyncFailedModel { | |
| - model: String? | |
| - manufacturer: String? | |
| - identifier: String | |
| - dateTimeStamp: String | |
| } | |
| class Alerts { | |
| + alerts: List<Alert> | |
| + totalRecords: Int | |
| } | |
| class AlertFilterAttributeModel { | |
| - groupName: List<String> | |
| - manufacturerName: List<String> | |
| - model: List<String> | |
| - scanCodeType: List<AssetFilterAttributeStatusModel> | |
| - status: List<AssetFilterAttributeStatusModel> | |
| - alertStatus: List<AssetFilterAttributeStatusModel> | |
| - alertName: List<String> | |
| - alertType: List<AssetFilterAttributeStatusModel> | |
| - activeStatus: List<AssetFilterAttributeStatusModel> | |
| - currentLocation: List<String> | |
| - currentLocationManager: List<String> | |
| - responsibleWorker: List<String> | |
| - inventoryWorker: List<String> | |
| - labels: List<String> | |
| } | |
| class AlertFilterAttributeStatusModel { | |
| - code: String | |
| - value: String | |
| } | |
| class AlertTypeEnum { | |
| + TRANSFER_RETURN | |
| + SERVICE | |
| + WORKER_CERTIFICATE | |
| + FLEET | |
| + RENTAL | |
| + LOANED | |
| + WARRANTY | |
| + REPLACEMENT_HILTI_ASSET | |
| } | |
| class AlertType { | |
| + code: String | |
| + value: String | |
| } | |
| class AlertStatus { | |
| + code: String | |
| + value: String | |
| } | |
| class AlertGroup { | |
| + code: String | |
| + value: String | |
| } | |
| interface BaseAlert { | |
| + id: Int | |
| + alertType: AlertType | |
| + alertStatus: AlertStatus | |
| } | |
| class Alert | |
| note right: Sealed class for alert | |
| class ServiceAlert { | |
| + assetId: Int | |
| + manufacturer: String | |
| + model: String | |
| + assetName: String | |
| + serviceDate: Date | |
| + currentLocation: String | |
| + responsibleWorker: String | |
| } | |
| class WorkerAlert { | |
| + workerName: String | |
| + workerId: Int | |
| + certificateName: String | |
| + certificateExpiryDate: Date | |
| } | |
| class TransferAlert { | |
| + assetId: Int | |
| + manufacturer: String | |
| + model: String | |
| + assetName: String | |
| + currentLocation: String | |
| + responsibleWorker: String | |
| + transferReturnDate: Date | |
| } | |
| class OwnershipFleetAlert { | |
| + assetId: Int | |
| + manufacturer: String? | |
| + model: String? | |
| + assetName: String? | |
| + currentLocation: String? | |
| + responsibleWorker: String? | |
| + fleetExchangeDate: Date? | |
| } | |
| class OwnershipRentalAlert { | |
| + assetId: Int | |
| + manufacturer: String? | |
| + model: String? | |
| + assetName: String? | |
| + currentLocation: String? | |
| + responsibleWorker: String? | |
| + rentalReturnDate: Date? | |
| } | |
| class OwnershipLoanedAlert { | |
| + assetId: Int | |
| + manufacturer: String? | |
| + model: String? | |
| + assetName: String? | |
| + currentLocation: String? | |
| + responsibleWorker: String? | |
| + loanEndDate: Date? | |
| } | |
| class OwnershipWarrantyAlert { | |
| + assetId: Int | |
| + manufacturer: String? | |
| + model: String? | |
| + assetName: String? | |
| + currentLocation: String? | |
| + responsibleWorker: String? | |
| + warrantyExpirationDate: Date? | |
| } | |
| class ReplacementHiltiAssetAlert { | |
| + assetId: Int | |
| + manufacturer: String? | |
| + model: String? | |
| + currentLocation: String? | |
| + responsibleWorker: String? | |
| + replacementDate: Date? | |
| + previousSerialNumber: String? | |
| + serialNumber: String | |
| } | |
| class GatewayOfflineAlert { | |
| + assetId: Int | |
| + manufacturer: String? | |
| + model: String? | |
| + assetName: String? | |
| + currentLocation: String? | |
| + responsibleWorker: String? | |
| + gatewayOfflineDate: Date? | |
| } | |
| class UnexpectedAssetRemovalAlert { | |
| + assetId: Int | |
| + manufacturer: String? | |
| + model: String? | |
| + assetName: String? | |
| + currentLocation: String? | |
| + responsibleWorker: String? | |
| + unexpectedRemovalDate: Date? | |
| } | |
| Alerts *-- Alert | |
| BaseAlert *-- AlertType | |
| BaseAlert *-- AlertStatus | |
| AlertFilterAttributeModel *-- AlertFilterAttributeStatusModel | |
| BaseAlert <|-- Alert | |
| Alert <|-- ServiceAlert | |
| Alert <|-- TransferAlert | |
| Alert <|-- WorkerAlert | |
| Alert <|-- OwnershipFleetAlert | |
| Alert <|-- OwnershipRentalAlert | |
| Alert <|-- OwnershipLoanedAlert | |
| Alert <|-- OwnershipWarrantyAlert | |
| Alert <|-- ReplacementHiltiAssetAlert | |
| Alert <|-- GatewayOfflineAlert | |
| Alert <|-- UnexpectedAssetRemovalAlert | |
| interface BaseAlertDetail { | |
| + id: Int | |
| + alertType: AlertType | |
| + alertStatus: AlertStatus | |
| + group: AlertGroup | |
| + alertGeneratedDate: String | |
| + numOfDays: String | |
| + alertName: String? | |
| + dismissedBy: String? | |
| } | |
| class AlertDetail | |
| note top: Sealed class for alert detail | |
| class ServiceAlertDetail { | |
| + assetDescription: String | |
| + assetId: Int | |
| + assetName: String | |
| + currentLocation: String | |
| + inventoryNumber: String | |
| + inventoryWorker: String | |
| + lastServiceCompletedDate: String | |
| + lastServiceCost: String | |
| + lastServiceCurrency: String | |
| + lastServiceVendorName: String | |
| + lastServiceWorkerName: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + serviceDate: Date | |
| + serviceName: String | |
| + serviceType: AlertServiceType | |
| + serviceId: Int | |
| + scanCodeType: ScanCodeType | |
| } | |
| class TransferAlertDetail { | |
| + assetDescription: String | |
| + assetId: Int | |
| + assetName: String | |
| + currentLocation: String | |
| + defaultLocation: String | |
| + inventoryNumber: String | |
| + inventoryWorker: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + transferReturnDate: Date | |
| + currentLocationId: Int | |
| + defaultLocationId: Int | |
| + responsibleEmployeeId: Int | |
| + scanCodeType: ScanCodeType | |
| } | |
| class WorkerAlertDetail { | |
| + certificateDescription: String | |
| + certificateExpiryDate: String | |
| + certificateName: String | |
| + workerBadgeId: String | |
| + workerDesignation: String | |
| + workerId: Int | |
| + workerName: String | |
| } | |
| class OwnershipFleetAlertDetail { | |
| + assetName: String? | |
| + assetId: Int | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + scanCodeType: ScanCodeType | |
| + fleetExchangeDate: Date? | |
| } | |
| class OwnershipRentalAlertDetail { | |
| + assetName: String? | |
| + assetId: Int | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + scanCodeType: ScanCodeType | |
| + rentalReturnDate: Date? | |
| } | |
| class OwnershipLoanedAlertDetail { | |
| + assetName: String? | |
| + assetId: Int | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + scanCodeType: ScanCodeType | |
| + loanEndDate: Date? | |
| } | |
| class OwnershipWarrantyAlertDetail { | |
| + assetName: String? | |
| + assetId: Int | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + scanCodeType: ScanCodeType | |
| + warrantyExpirationDate: Date? | |
| } | |
| class GatewayOfflineAlertDetail { | |
| + assetName: String?, | |
| + assetId: Int, | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String? | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String? | |
| + scanCode: String? | |
| + scanCodeType: ScanCodeType? | |
| + gatewayOfflineDate: Date? | |
| + storageAssetOfId: Int | |
| + storageAssetOf: String | |
| } | |
| class UnexpectedAssetRemovalAlertDetail { | |
| + assetName: String? | |
| + assetId: Int | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String? | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String? | |
| + scanCode: String? | |
| + scanCodeType: ScanCodeType? | |
| + unexpectedRemovalDate: Date? | |
| + storageAssetOfId: Int | |
| + storageAssetOf: String | |
| } | |
| class AlertServiceType { | |
| + code: String | |
| + value: String | |
| } | |
| class AlertServiceType { | |
| + code: String | |
| + value: String | |
| } | |
| class ScanCodeType { | |
| + code: String | |
| + value: String | |
| } | |
| BaseAlertDetail *-- AlertType | |
| BaseAlertDetail *-- AlertGroup | |
| BaseAlertDetail <|-- AlertDetail | |
| AlertDetail <|-- ServiceAlertDetail | |
| AlertDetail <|-- TransferAlertDetail | |
| AlertDetail <|-- WorkerAlertDetail | |
| AlertDetail <|-- OwnershipFleetAlertDetail | |
| AlertDetail <|-- OwnershipLoanedAlertDetail | |
| AlertDetail <|-- OwnershipWarrantyAlertDetail | |
| AlertDetail <|-- OwnershipRentedAlertDetail | |
| AlertDetail <|-- GatewayOfflineAlertDetail | |
| AlertDetail <|-- UnexpectedAssetRemovalAlertDetail | |
| ServiceAlertDetail *-- AlertServiceType | |
| ServiceAlertDetail *-- ScanCodeType | |
| TransferAlertDetail *-- ScanCodeType | |
| OwnershipFleetAlertDetail *-- ScanCodeType | |
| OwnershipLoanedAlertDetail *-- ScanCodeType | |
| OwnershipWarrantyAlertDetail *-- ScanCodeType | |
| OwnershipRentedAlertDetail *-- ScanCodeType | |
| class UserAlertSettingsChannelInfo{ | |
| + isConsolidated: Boolean | |
| + isPerAlert: Boolean | |
| + isEnabled: Boolean | |
| } | |
| class UserAlertSettingsChannel{ | |
| + id: Int | |
| + code: String | |
| + userAlertSettingsChannelInfo: UserAlertSettingsChannelInfo | |
| } | |
| class UserAlertSettings{ | |
| + id: Int | |
| + userAlertSettingsType: UserAlertSettingsType | |
| + userAlertSettingsChannels: List<UserAlertSettingsChannel> | |
| } | |
| class UserAlertSettingsList { | |
| + userAlertSettingsModel:List<UserAlertSettings> | |
| } | |
| class UserAlertSettingsType { | |
| + code:String | |
| + value:String | |
| } | |
| UserAlertSettingsList *-- UserAlertSettings | |
| UserAlertSettingsChannel *-- UserAlertSettingsChannelInfo | |
| } | |
| } | |
| namespace service { | |
| interface AlertListServiceContract { | |
| + getAlerts(offset: Int, limit: Int, filterValues: List<String>?, alertState: AlertStateEnum): Flowable<Alerts> | |
| + searchAlerts(query: String, filterValues: List<String>?, limit: Int, offset: Int, alertState: AlertStateEnum): Flowable<Alerts> | |
| } | |
| class AlertListService { | |
| - tokenProvider: AlertTokenProvider | |
| - alertApiEndpoints: AlertApiEndpoints | |
| - alertsApi: AlertsApi | |
| } | |
| AlertListServiceContract <|-- AlertListService | |
| interface AlertDetailServiceContract { | |
| + getAlertDetail(id: Int, alertState: AlertStateEnum): Single<AlertDetail> | |
| } | |
| class AlertDetailService { | |
| - alertErrorHandling: AlertErrorHandling | |
| - tokenProvider: AlertTokenProvider | |
| - alertApiEndpoints: AlertApiEndpoints | |
| - alertsApi: AlertsApi | |
| } | |
| AlertDetailServiceContract <|-- AlertDetailService | |
| interface AlertsServiceContract { | |
| + dismissAlerts(ids: List<Int>): Completable | |
| + getActiveAlertsCount(): Single<String> | |
| + getFilterAttributes(filterValues: List<String>?, alertState: AlertStateEnum): Single<AlertFilterAttributeResponses> | |
| } | |
| class AlertsService { | |
| - tokenProvider: AlertTokenProvider | |
| - alertApiEndpoints: AlertApiEndpoints | |
| - alertsApi: AlertsApi | |
| } | |
| AlertsServiceContract <|-- AlertsService | |
| interface UserAlertSettingsServiceContract { | |
| + getUserAlertSettings(): Single<UserAlertSettingsList> | |
| + saveUserAlertSettings(saveResponseListUser: UserAlertSettingsList): Completable | |
| } | |
| class UserAlertSettingsService { | |
| - tokenProvider: AlertTokenProvider | |
| - alertApiEndpoints: AlertApiEndpoints | |
| - alertsApi: AlertsApi | |
| } | |
| UserAlertSettingsServiceContract <|-- UserAlertSettingsService | |
| interface AlertsApi { | |
| + getAlerts(@Url url: String, @Header("Authorization") accessToken: String, @QueryMap params: Map<String, String>): Flowable<AlertResponseList> | |
| + getAlertDetail(@Url url: String, @Header("Authorization") accessToken: String): Single<AlertDetailResponse> | |
| + getActiveAlertsCount(@Url url: String, @Header("Authorization") accessToken: String): Single<ActiveAlertsCountResponse> | |
| + getUserAlertSettings(@Url url: String, @Header("Authorization") accessToken: String): Single<UserAlertSettingsResponseList> | |
| + saveUserAlertSettings(@Url url: String, @Header("Authorization") accessToken: String, @Body userAlertSettings: UserAlertSettingsResponseList): Completable | |
| + getFilterAttributes(@Url url: String, @Header("Authorization") accessToken: String, @Query("filter") filterValues: List<String>?): Single<AlertFilterAttributeResponses> | |
| + dismissAlerts(@Url url: String, @Header("Authorization") accessToken: String, @Body alertsDismissRequest: AlertsDismissRequest): Completable | |
| } | |
| class AlertsDeserializer | |
| class AlertDetailDeserializer | |
| AlertsService o-- AlertsApi | |
| AlertDetailService o-- AlertsApi | |
| AlertListService o-- AlertsApi | |
| UserAlertSettingsService o-- AlertsApi | |
| namespace datamodel { | |
| class ActiveAlertsCountResponse{ | |
| + alertCount: String | |
| } | |
| class AlertsDismissRequest { | |
| + alertIds: List<Int> | |
| } | |
| class AlertFilterAttributeResponses { | |
| + alertFilterAttributeResponse: AlertFilterAttributeResponse | |
| } | |
| class AlertFilterAttributeResponse { | |
| - groupName: List<String> | |
| - manufacturerName: List<String> | |
| - model: List<String> | |
| - scanCodeType: List<AlertFilterAttributeStatusResponse> | |
| - status: List<AlertFilterAttributeStatusResponse> | |
| - alertStatus: List<AlertFilterAttributeStatusResponse> | |
| - alertName: List<String> | |
| - alertType: List<AlertFilterAttributeStatusResponse> | |
| - activeStatus: List<AlertFilterAttributeStatusResponse> | |
| - currentLocation: List<String> | |
| - currentLocationManager: List<String> | |
| - responsibleWorker: List<String> | |
| - inventoryWorker: List<String> | |
| - labels: List<String> | |
| } | |
| class AlertFilterAttributeStatusResponse { | |
| - code: String | |
| - value: String | |
| } | |
| class AlertResponseList { | |
| + response: List<AlertResponse> | |
| + totalRecords: Int | |
| + limit: Int | |
| + offset: Int | |
| } | |
| class AlertGroupResponse { | |
| + code: String | |
| + value: String | |
| } | |
| class AlertTypeResponse { | |
| + code: String | |
| + value: String | |
| } | |
| class AlertStatusResponse { | |
| + code: String | |
| + value: String | |
| } | |
| interface BaseAlertResponse { | |
| + id: Int | |
| + alertType: AlertTypeResponse | |
| + alertStatus: AlertStatusResponse | |
| } | |
| class AlertResponse | |
| note left: Sealed class for alert Response | |
| class ServiceAlertResponse { | |
| + details: ServiceAlertDetailsResponse | |
| } | |
| class ServiceAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String | |
| + currentLocation: String | |
| + inventoryWorker: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + serviceDate: String | |
| + serviceId: Int | |
| } | |
| class TransferAlertResponse { | |
| + details: TransferAlertDetailsResponse | |
| } | |
| class TransferAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String | |
| + currentLocation: String | |
| + defaultLocation: String | |
| + inventoryWorker: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + transferReturnDate: String | |
| + currentLocationId: Int | |
| + defaultLocationId: Int | |
| + responsibleEmployeeId: Int | |
| } | |
| class WorkerAlertResponse { | |
| + details: WorkerAlertDetailsResponse | |
| } | |
| class WorkerAlertDetailsResponse { | |
| + certificateExpiryDate: String | |
| + certificateName: String | |
| + workerId: Int | |
| + workerName: String | |
| } | |
| class OwnershipFleetAlertResponse { | |
| + details: OwnershipFleetAlertDetailsResponse | |
| } | |
| class OwnershipFleetAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + fleetExchangeDate: String | |
| } | |
| class OwnershipRentalAlertResponse { | |
| + details: OwnershipFleetAlertDetailsResponse | |
| } | |
| class OwnershipRentalAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + rentalReturnDate: String | |
| } | |
| class OwnershipLoanedAlertResponse { | |
| + details: OwnershipLoanedAlertDetailsResponse | |
| } | |
| class OwnershipLoanedAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + loanReturnDate: String | |
| } | |
| class OwnershipWarrantyAlertResponse { | |
| + details: OwnershipLoanedAlertDetailsResponse | |
| } | |
| class OwnershipWarrantyAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + warrantyExpirationDate: String | |
| } | |
| class ReplacementHiltiAssetAlertResponse { | |
| + details: ReplacementHiltiAssetAlertDetailsResponse | |
| } | |
| class ReplacementHiltiAssetAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + manufacturer: String? | |
| + model: String? | |
| + currentLocation: String? | |
| + responsibleWorker: String? | |
| + replacementDate: String | |
| + previousSerialNumber: String? | |
| + serialNumber: String | |
| } | |
| class GatewayAlertResponse { | |
| + details: GatewayAlertDetailsResponse | |
| } | |
| class GatewayAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + defaultLocationName: String | |
| + defaultLocationId: Int | |
| + gatewayOfflineDate: String | |
| + currentLocationId: Int | |
| + inventoryWorkerId: Int | |
| + responsibleEmployeeId: Int | |
| } | |
| class UnexpectedAssetRemovalAlertResponse { | |
| + details: UnexpectedAssetRemovalAlertDetailsResponse | |
| } | |
| class UnexpectedAssetRemovalAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + defaultLocationName: String | |
| + defaultLocationId: Int | |
| + unexpectedRemovalDate: String | |
| + currentLocationId: Int | |
| + inventoryWorkerId: Int | |
| + responsibleEmployeeId: Int | |
| } | |
| AlertResponseList *-- AlertResponse | |
| BaseAlertResponse *-- AlertTypeResponse | |
| BaseAlertResponse *-- AlertStatusResponse | |
| BaseAlertResponse *-- AlertGroupResponse | |
| AlertFilterAttributeResponses *-- AlertFilterAttributeResponse | |
| AlertFilterAttributeResponse *-- AlertFilterAttributeStatusResponse | |
| BaseAlertResponse <|-- AlertResponse | |
| AlertResponse <|-- ServiceAlertResponse | |
| ServiceAlertResponse *-- ServiceAlertDetailsResponse | |
| AlertResponse <|-- TransferAlertResponse | |
| TransferAlertResponse *-- TransferAlertDetailsResponse | |
| AlertResponse <|-- WorkerAlertResponse | |
| WorkerAlertResponse *-- WorkerAlertDetailsResponse | |
| AlertResponse <|-- OwnershipFleetAlertResponse | |
| OwnershipFleetAlertResponse *-- OwnershipFleetAlertDetailsResponse | |
| AlertResponse <|-- OwnershipRentalAlertResponse | |
| OwnershipRentalAlertResponse *-- OwnershipRentalAlertDetailsResponse | |
| AlertResponse <|-- OwnershipLoanedAlertResponse | |
| OwnershipLoanedAlertResponse *-- OwnershipLoanedAlertDetailsResponse | |
| AlertResponse <|-- OwnershipWarrantyAlertResponse | |
| OwnershipWarrantyAlertResponse *-- OwnershipWarrantyAlertDetailsResponse | |
| AlertResponse <|-- ReplacementHiltiAssetAlertResponse | |
| ReplacementHiltiAssetAlertResponse *-- ReplacementHiltiAssetAlertDetailsResponse | |
| AlertResponse <|-- GatewayAlertResponse | |
| GatewayAlertResponse *-- GatewayAlertDetailsResponse | |
| AlertResponse <|-- UnexpectedAssetRemovalAlertResponse | |
| UnexpectedAssetRemovalAlertResponse *-- UnexpectedAssetRemovalAlertDetailsResponse | |
| interface BaseAlertDetailResponse { | |
| + id: Int | |
| + alertType: AlertTypeResponse | |
| + alertStatus: AlertStatusResponse | |
| + group: AlertGroupResponse | |
| + alertGeneratedDate: String | |
| + numOfDays: String | |
| + alertName: String | |
| + dismissedBy: String | |
| } | |
| class AlertDetailResponse | |
| note left: Sealed class for alert detail Response | |
| class ServiceAlertDetailResponse { | |
| + assetDescription: String | |
| + assetId: Int | |
| + assetName: String | |
| + currentLocation: String | |
| + inventoryNumber: String | |
| + inventoryWorker: String | |
| + lastServiceCompletedDate: String | |
| + lastServiceCost: String | |
| + lastServiceCurrency: String | |
| + lastServiceVendorName: String | |
| + lastServiceWorkerName: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + serviceDate: String | |
| + serviceType: AlertServiceTypeResponse | |
| + serviceId: Int | |
| + scanCodeType: ScanCodeTypeResponse | |
| } | |
| class AlertServiceTypeResponse { | |
| + code: String | |
| + value: String | |
| } | |
| class TransferAlertDetailResponse { | |
| + assetDescription: String | |
| + assetId: Int | |
| + assetName: String | |
| + currentLocation: String | |
| + defaultLocation: String | |
| + inventoryNumber: String | |
| + inventoryWorker: String | |
| + manufacturer: String | |
| + model: String | |
| + responsibleWorker: String | |
| + scanCode: String | |
| + transferReturnDate: String | |
| + currentLocationId: Int | |
| + defaultLocationId: Int | |
| + responsibleEmployeeId: Int | |
| + scanCodeType: ScanCodeTypeResponse | |
| } | |
| class WorkerAlertDetailResponse { | |
| + certificateDescription: String | |
| + certificateExpiryDate: String | |
| + certificateName: String | |
| + workerBadgeId: String | |
| + workerDesignation: String | |
| + workerId: Int | |
| + workerName: String | |
| } | |
| class OwnershipFleetAlertDetailResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + scanCode: String? | |
| + scanCodeType: ScanCodeTypeResponse? | |
| + fleetExchangeDate: String | |
| } | |
| class OwnershipRentalAlertDetailResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + scanCode: String? | |
| + scanCodeType: ScanCodeTypeResponse? | |
| + rentalReturnDate: String | |
| } | |
| class OwnershipLoanedAlertDetailResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + scanCode: String? | |
| + scanCodeType: ScanCodeTypeResponse? | |
| + loanEndDate: String | |
| } | |
| class OwnershipWarrantyAlertDetailResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryNumber: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + scanCode: String? | |
| + scanCodeType: ScanCodeTypeResponse? | |
| + warrantyExpirationDate: String | |
| } | |
| class GatewayAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + defaultLocationName: String | |
| + defaultLocationId: Int | |
| + gatewayOfflineDate: String | |
| + currentLocationId: Int | |
| + inventoryWorkerId: Int | |
| + responsibleEmployeeId: Int | |
| } | |
| class UnexpectedAssetRemovalAlertDetailsResponse { | |
| + assetId: Int | |
| + assetName: String? | |
| + currentLocation: String? | |
| + inventoryWorker: String | |
| + manufacturer: String? | |
| + model: String? | |
| + responsibleWorker: String | |
| + defaultLocationName: String | |
| + defaultLocationId: Int | |
| + unexpectedRemovalDate: String | |
| + currentLocationId: Int | |
| + inventoryWorkerId: Int | |
| + responsibleEmployeeId: Int | |
| } | |
| BaseAlertDetailResponse *-- AlertTypeResponse | |
| BaseAlertDetailResponse *-- AlertStatusResponse | |
| BaseAlertDetailResponse *-- AlertGroupResponse | |
| BaseAlertDetailResponse <|-- AlertDetailResponse | |
| AlertDetailResponse <|-- ServiceAlertDetailResponse | |
| ServiceAlertDetailResponse *-- AlertServiceTypeResponse | |
| AlertDetailResponse <|-- TransferAlertDetailResponse | |
| AlertDetailResponse <|-- WorkerAlertDetailResponse | |
| AlertDetailResponse <|-- OwnershipFleetAlertDetailResponse | |
| AlertDetailResponse <|-- OwnershipRentalAlertDetailResponse | |
| AlertDetailResponse <|-- OwnershipLoanedAlertDetailResponse | |
| AlertDetailResponse <|-- OwnershipWarrantyAlertDetailResponse | |
| AlertDetailResponse <|-- GatewayAlertDetailsResponse | |
| AlertDetailResponse <|-- UnexpectedAssetRemovalAlertDetailsResponse | |
| class UserAlertSettingsChannelInfoResponse{ | |
| + isConsolidated: Boolean | |
| + isPerAlert: Boolean | |
| + isEnabled: Boolean | |
| } | |
| class UserAlertSettingsChannelsResponse{ | |
| + id: Int | |
| + code: String | |
| + userAlertSettingsChannelInfoResponse: UserAlertSettingsChannelInfoResponse | |
| } | |
| class UserAlertSettingsResponse{ | |
| + id: Int | |
| + userAlertSettingsTypeResponse: UserAlertSettingsTypeResponse | |
| + userAlertSettingChannelsResponse: List<UserAlertSettingsChannelsResponse> | |
| } | |
| class UserAlertSettingsResponseList{ | |
| + userAlertSettingsResponse: List<UserAlertSettingsResponse> | |
| } | |
| class UserAlertSettingsTypeResponse{ | |
| + code: String | |
| + value: String | |
| } | |
| UserAlertSettingsResponseList *-- UserAlertSettingsResponse | |
| UserAlertSettingsChannelsResponse *-- UserAlertSettingsChannelInfoResponse | |
| } | |
| } | |
| } | |
| } | |
| alert.domain.AlertAssetSyncFailedInteractor o-- alert.model.repository.AlertsRepositoryContract | |
| alert.domain.ActiveAlertCountInteractor o-- alert.model.repository.AlertsRepositoryContract | |
| alert.domain.AlertListInteractor o-- alert.model.repository.AlertsRepositoryContract | |
| alert.domain.AlertDetailInteractor o-- alert.model.repository.AlertsRepositoryContract | |
| alert.domain.AlertFilterInteractor o-- alert.model.repository.AlertsRepositoryContract | |
| alert.domain.AlertActionInteractor o-- alert.model.repository.AlertsRepositoryContract | |
| alert.domain.UserAlertSettingsInteractor o-- alert.model.repository.UserAlertSettingsRepositoryContract | |
| alert.model.repository.AlertsRepository o-- alert.model.service.AlertsServiceContract | |
| alert.model.repository.AlertsRepository o-- alert.model.service.AlertsServiceContract | |
| alert.model.repository.AlertsRepository o-- alert.model.service.AlertListServiceContract | |
| alert.model.repository.AlertsRepository o-- alert.model.service.AlertDetailServiceContract | |
| alert.model.repository.UserAlertSettingsRepository o-- alert.model.service.UserAlertSettingsServiceContract | |
| alert.model.repository.AlertsRepository o-- alert.model.storage.AlertAssetSyncFailedStorageContract | |
| alert.model.storage.AlertAssetSyncFailedStorage o-- alert.model.storage.dao.AlertAssetSyncFailedDaoContract | |
| alert.model.storage.AlertAssetSyncFailedStorage <|-- alert.model.storage.AlertAssetSyncFailedStorageContract | |
| alert.model.storage.dao.AlertAssetSyncFailedDao <|-- alert.model.storage.dao.AlertAssetSyncFailedDaoContract | |
| @enduml | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment