class WebAdminDeleteMailsFromMailQueueTaskAdditionalInformationDTO implements AdditionalInformationDTO {

    public static AdditionalInformationDTOModule<DeleteMailsFromMailQueueTask.AdditionalInformation, WebAdminDeleteMailsFromMailQueueTaskAdditionalInformationDTO> module() {
        return DTOModule.forDomainObject(DeleteMailsFromMailQueueTask.AdditionalInformation.class)
            .convertToDTO(WebAdminDeleteMailsFromMailQueueTaskAdditionalInformationDTO.class)
            .toDomainObjectConverter(WebAdminDeleteMailsFromMailQueueTaskAdditionalInformationDTO::fromDTO)
            .toDTOConverter(WebAdminDeleteMailsFromMailQueueTaskAdditionalInformationDTO::toDTO)
            .typeName(DeleteMailsFromMailQueueTask.TYPE.asString())
            .withFactory(AdditionalInformationDTOModule::new);
    }

    public  WebAdminDeleteMailsFromMailQueueTaskAdditionalInformationDTO(@JsonProperty("type") String type,
                                                                        @JsonProperty("mailQueueName") String mailQueueName,
                                                                        @JsonProperty("sender") Optional<String> sender,
                                                                        @JsonProperty("name") Optional<String> name,
                                                                        @JsonProperty("recipient") Optional<String> recipient,
                                                                        @JsonProperty("initialCount") long initialCount,
                                                                        @JsonProperty("remainingCount") long remainingCount,
                                                                        @JsonProperty("timestamp") Instant timestamp);

}