@ems-press/content-api-types
Version:
Typescript types for the EMS Press Content API
61 lines (60 loc) • 2.1 kB
TypeScript
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'>;