import { injectable } from "inversify"; import { IJsonApiResponse, IJsonApiResource, IJsonApiRelationship, IJsonApiRelationships, } from "../../interfaces"; import { IAssociationEntry } from "../associationEntry"; export const associationType = "association"; export interface IAssociationAttributes { association_type?: string; created_at?: string; status?: string; target_types?: string[]; updated_at?: string; } export interface IAssociationRelationships extends IJsonApiRelationships { source?: IJsonApiRelationship; entries?: IJsonApiRelationship; suggestions?: IJsonApiRelationship; } export interface IAssociationResource extends IJsonApiResource {} export interface IAssociationResponse extends IJsonApiResponse {} export interface IAssociation { id?: string; associationType?: string; createdAt?: string; entries?: IAssociationEntry[]; source?: T & { id?: string; type?: string; }; status?: string; suggestions?: IJsonApiResource[]; targetTypes?: string[]; updatedAt?: string; } @injectable() export default class Association implements IAssociation { id?: string; associationType?: string; createdAt?: string; entries?: IAssociationEntry[]; source?: T & { id?: string; type?: string; }; status?: string; suggestions?: IJsonApiResource[]; targetTypes?: string[]; updatedAt?: string; constructor(options?: IAssociation) { Object.assign(this, options); } }