import { FindOptions, WhereOptions, UpdateOptions, BulkCreateOptions, DestroyOptions, CreateOptions, Identifier, Model, UpsertOptions, CountOptions } from 'sequelize'; import { TPaginationOptions } from '../../types/commonType'; interface IReadService { findAll(where: WhereOptions, options?: FindOptions): Promise; findOne(where: WhereOptions, options?: FindOptions): Promise; findByPk(identifier: Identifier, options?: FindOptions): Promise; findAllWithPagination(where: WhereOptions, options?: FindOptions): Promise>; count(where: WhereOptions, options?: CountOptions): Promise; } interface IWriteService { update(where: WhereOptions, updateData: Partial, options?: Partial): Promise<[number]>; upsert(conflictWhere: WhereOptions, updateData: T['_creationAttributes'], options?: Partial): Promise<[T['_attributes'], boolean | null]>; create(createData: T['_creationAttributes'], options?: CreateOptions): Promise; bulkCreate(createData: T['_creationAttributes'][], options?: BulkCreateOptions): Promise; } interface IDeleteService { delete(where: WhereOptions, options?: DestroyOptions): Promise; } export interface ISequelizeCommonService extends IReadService, IWriteService, IDeleteService { } export {};