refactor: untangle SCCreativeWork inheritance

This commit is contained in:
Rainer Killinger
2022-05-30 17:00:14 +02:00
parent 31bb7e89ea
commit 9d0ff36af5
5 changed files with 79 additions and 24 deletions

View File

@@ -20,6 +20,7 @@ import {
SCCreativeWorkWithoutReferences,
} from './abstract/creative-work';
import {SCThingMeta, SCThingType} from './abstract/thing';
import {SCAcademicPriceGroup, SCThingThatCanBeOffered, SCThingThatCanBeOfferedMeta, SCThingThatCanBeOfferedTranslatableProperties, SCThingThatCanBeOfferedWithoutReferences} from './abstract/thing-that-can-be-offered';
import {
SCThingWithCategoriesSpecificValues,
SCThingWithCategoriesTranslatableProperties,
@@ -37,6 +38,7 @@ export type SCPeriodicalCategories = 'journal' | 'electronic';
*/
export interface SCPeriodicalWithoutReferences
extends SCCreativeWorkWithoutReferences,
SCThingThatCanBeOfferedWithoutReferences,
SCThingWithCategoriesWithoutReferences<SCPeriodicalCategories, SCThingWithCategoriesSpecificValues> {
/**
* Categories of a periodical
@@ -68,7 +70,9 @@ export interface SCPeriodicalWithoutReferences
* @indexable
*/
export interface SCPeriodical
extends SCCreativeWork, SCPeriodicalWithoutReferences {
extends SCCreativeWork,
SCThingThatCanBeOffered<SCAcademicPriceGroup>,
SCPeriodicalWithoutReferences {
/**
* Translated properties of a periodical
*/
@@ -84,7 +88,9 @@ export interface SCPeriodical
* Translatable properties of a periodical
*/
export interface SCPeriodicalTranslatableFields
extends SCThingWithCategoriesTranslatableProperties, SCCreativeWorkTranslatableProperties {
extends SCThingWithCategoriesTranslatableProperties,
SCThingThatCanBeOfferedTranslatableProperties,
SCCreativeWorkTranslatableProperties {
}
/**
@@ -99,6 +105,7 @@ export class SCPeriodicalMeta extends SCThingMeta implements SCMetaTranslations<
...SCCreativeWorkMeta.getInstance<SCCreativeWorkMeta>().fieldTranslations.de,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCPeriodicalCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.de,
...SCThingThatCanBeOfferedMeta.getInstance<SCAcademicPriceGroup>().fieldTranslations.de,
categories: 'Format',
ISSNs: 'ISSN',
},
@@ -106,6 +113,7 @@ export class SCPeriodicalMeta extends SCThingMeta implements SCMetaTranslations<
...SCCreativeWorkMeta.getInstance<SCCreativeWorkMeta>().fieldTranslations.en,
...SCThingWithCategoriesWithoutReferencesMeta.getInstance<SCPeriodicalCategories,
SCThingWithCategoriesSpecificValues>().fieldTranslations.en,
...SCThingThatCanBeOfferedMeta.getInstance<SCAcademicPriceGroup>().fieldTranslations.en,
categories: 'format',
ISSNs: 'ISSN',
},
@@ -118,6 +126,8 @@ export class SCPeriodicalMeta extends SCThingMeta implements SCMetaTranslations<
de: {
...SCCreativeWorkMeta.getInstance<SCCreativeWorkMeta>()
.fieldValueTranslations.de,
...SCThingThatCanBeOfferedMeta.getInstance<SCAcademicPriceGroup>()
.fieldValueTranslations.de,
type: 'Periodikum',
categories: {
electronic: 'E-Journal',
@@ -127,6 +137,8 @@ export class SCPeriodicalMeta extends SCThingMeta implements SCMetaTranslations<
en: {
...SCCreativeWorkMeta.getInstance<SCCreativeWorkMeta>()
.fieldValueTranslations.en,
...SCThingThatCanBeOfferedMeta.getInstance<SCAcademicPriceGroup>()
.fieldValueTranslations.en,
type: 'periodical',
categories: {
electronic: 'E-Journal',