Skip to content

Instantly share code, notes, and snippets.

@jayanthrbharadwaj
Created July 24, 2020 17:37
Show Gist options
  • Select an option

  • Save jayanthrbharadwaj/b72c11bbc1ab79ba355fa802e3bb7339 to your computer and use it in GitHub Desktop.

Select an option

Save jayanthrbharadwaj/b72c11bbc1ab79ba355fa802e3bb7339 to your computer and use it in GitHub Desktop.
@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