UNPKG

amocrm-client

Version:
37 lines (34 loc) 1.72 kB
import { TConstructor } from "../../types"; import { IRequestOptions } from "../../interfaces/common"; import { IResourceCollection, IResourceEntity } from "../../interfaces/api"; import { applyMixins } from "../../util"; import { hasUpdate, hasCreate, hasSave, hasFetch, hasContacts, hasCompanies, hasResoinsibleUser, hasCustomFields } from "./mixins"; import { UserCriteria } from "../../interfaces/user"; import { IUser } from "./User"; import { ILeadFactory } from "../factories/LeadFactory"; import { LeadDTO } from "../../dto/lead.dto"; import { ContactCriteria } from "../../interfaces/contact"; import { ILeadAttributes, LeadCriteria } from "../../interfaces/lead"; import { IContact } from "./Contact"; import { ICustomFieldValue } from "../../interfaces/custom_field"; export interface ILead extends IResourceEntity<ILeadFactory>, ILeadAttributes { create(options?: IRequestOptions): Promise<ILead>; update(options?: IRequestOptions): Promise<ILead>; save(options?: IRequestOptions): Promise<ILead>; fetch(criteria?: LeadCriteria, options?: IRequestOptions): Promise<ILead>; cf(): IResourceCollection<ICustomFieldValue>; cf(identity: number): ICustomFieldValue; cf(identity: number, value: any): ICustomFieldValue; contacts(criteria?: Pick<ContactCriteria, "with">, options?: IRequestOptions): Promise<IContact | false>; responsibleUser(criteria?: Pick<UserCriteria, "with">, options?: IRequestOptions): Promise<IUser | false>; } export const Lead: TConstructor<ILead> = applyMixins(LeadDTO, [ hasCustomFields, hasContacts, hasCompanies, hasResoinsibleUser, hasCreate, hasUpdate, hasSave, hasFetch ]);