import { dataBuilder } from "@helpers/datas/dataBuilder"; import { lorem } from "@helpers/ui/lipsum"; import { get_random_namedResource } from "@mocks/namedResource.mock"; import type { objectParameters } from "@mocks/object.mock"; import { get_random_mediaObject, sampleMediaObject, } from "@mocks/objects/mediaObject.mock"; import { type Object_MediaObject_CivilSociety, RDFTYPE_MEDIA_OBJECT, RDFTYPE_OBJECT, RDFTYPE_SOCIETY_OBJECT, } from "@src/rdf"; export const sampleCivilSocietyObject: Object_MediaObject_CivilSociety = { ...sampleMediaObject, "@type": [RDFTYPE_OBJECT, RDFTYPE_MEDIA_OBJECT, RDFTYPE_SOCIETY_OBJECT], editor: "Sample Editor", original_languages: "Sample Original Languages", contributors: "Sample Contributors", publication_service: "Sample Publication Service", type: get_random_namedResource(), }; export const get_random_civilSocietyObject = ( parameters: objectParameters = {} ): Object_MediaObject_CivilSociety => { const removables: string[] = []; const replacements: Object_MediaObject_CivilSociety = { ...get_random_mediaObject(parameters), "@type": [RDFTYPE_OBJECT, RDFTYPE_MEDIA_OBJECT, RDFTYPE_SOCIETY_OBJECT], editor: lorem.generateSentences(1), original_languages: lorem.generateSentences(1), contributors: lorem.generateSentences(1), publication_service: lorem.generateSentences(1), type: get_random_namedResource(), }; if (parameters.allowRemovables) { const removableGenerator = (key: string) => { // Between 0 and 25% chance if (Math.random() < Math.random() * 0.25) { removables.push(key); } }; removableGenerator("editor"); removableGenerator("original_languages"); removableGenerator("contributors"); removableGenerator("publication_service"); } return dataBuilder( sampleCivilSocietyObject, removables, replacements, true ) as Object_MediaObject_CivilSociety; };