UNPKG

@ems-press/content-api-types

Version:

Typescript types for the EMS Press Content API

61 lines (60 loc) 2.1 kB
import { Images, PersonGroups } from './index'; import { DateFilter, EqualFilter, IsInFilter } from '../filter'; export declare type SerialType = 'journal' | 'magazine' | 'serial'; export declare const serialTypes: SerialType[]; export declare type SerialPublishingModel = 'diamond' | 's2o' | 'subscription'; export declare const serialPublishingModels: import("./book-series").PublishingModel[]; export declare type S2oStatus = 'open-access' | 'subscription'; export declare const s2oStatuses: import("./book-series").S2oStatus[]; export declare type Type = 'serials'; export declare type Attributes = { createdAt: Date; updatedAt: Date; code: string; descriptionMarkdown?: string; readDescriptionMarkdown?: string; submitDescriptionMarkdown?: string; subscribeDescriptionMarkdown?: string; forthcomingArticlesMarkdown?: string; editorialBoardDescriptionMarkdown?: string; serialType: SerialType; name: string; nameAbbreviation: string; subtitle?: string; doiPrefix?: string; issn?: string; eIssn?: string; mscs: string[]; keywords: string[]; owner?: string; ownerUrl?: string; publishingModel: SerialPublishingModel; s2oStatus?: S2oStatus; s2oStatusStart?: Date; s2oStatusEnd?: Date; publisher: string; publisherOrganization?: string; publisherAddress?: string; publisherUrl: string; copyright?: string; copyrightUrl?: string; codeOfPractice?: string; codeOfPracticeUrl?: string; volumesPerYear?: number; issuesPerVolume?: number; pagesPerYear?: number; printWidthCm?: number; printHeightCm?: number; }; export declare type Relationships = { personGroups: { type: PersonGroups.Type; cardinality: 'N'; }; coverImage: { type: Images.Type; cardinality: '1'; }; }; export declare type SortField = 'createdAt' | 'updatedAt' | 'code' | 'name'; export declare type Filter = DateFilter<'created' | 'updated'> & IsInFilter<Attributes, 'serialType' | 's2oStatus' | 'doiPrefix'> & EqualFilter<Attributes, 'code'>;