/*
* search-doc-service
* Copyright (C) 2020 Memoriav
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package org.memobase.model
import com.fasterxml.jackson.annotation.JsonInclude
@JsonInclude(JsonInclude.Include.NON_EMPTY)
data class SearchDoc(
// Titles
val title: List,
val seriesTitle: List,
val broadcastTitle: List,
// Datatype properties
val type: String,
val sourceID: String,
val id: String,
val abstract: List,
val descriptiveNote: List,
val scopeAndContent: List,
val source: List,
val relatedMaterial: List,
val rightsHolder: List,
val sameAs: List,
// Concepts
val genre: List,
val keywords: List,
val languageContent: List,
val languageCaption: List,
val language: List,
// Agents
val personSubject: List,
val personCreator: List,
val personContributor: List,
val personPublisher: List,
val personProducer: List,
val personsFacet: List,
val corporateBodySubject: List,
val corporateBodyCreator: List,
val corporateBodyContributor: List,
val corporateBodyPublisher: List,
val corporateBodyProducer: List,
val agentSubject: List,
val agentCreator: List,
val agentContributor: List,
val agentPublisher: List,
val agentProducer: List,
// Places
val placeRelated: List,
val placeCapture: List,
val placeFacet: List,
// Dates
val temporal: List,
val dateCreated: List,
val dateIssued: List,
val institution: List,
val recordSet: FacettedContainer,
val memoriavClaim: Boolean,
// Digital Object
val durationDigital: List,
val colourDigital: List,
val locator: List,
val accessDigital: List,
val usageDigital: List,
val usageDigitalGroup: List,
val digitalObjectNote: List,
val usageConditionsDigital: List,
// Physical Object
val durationPhysical: List,
val callNumber: List,
val accessPhysical: List,
val usagePhysical: List,
val physicalCharacteristics: List,
val colourPhysical: List,
val usageConditionsPhysical: List,
val physicalObjectNote: List,
val format: List,
// Combined
val access: List
)