UNPKG

@citrineos/data

Version:

The OCPP data module which includes all persistence layer implementation.

29 lines (28 loc) 1.58 kB
import { CrudRepository, type SystemConfig } from '@citrineos/base'; import { type Model, type Sequelize } from 'sequelize-typescript'; import { type ILogObj, Logger } from 'tslog'; import { Attributes, FindAndCountOptions } from 'sequelize'; export declare class SequelizeRepository<T extends Model<any, any>> extends CrudRepository<T> { protected s: Sequelize; protected namespace: string; protected logger: Logger<ILogObj>; constructor(config: SystemConfig, namespace: string, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize); readByKey(key: string | number): Promise<T | undefined>; readAllByQuery(query: object): Promise<T[]>; readAllBySqlString(sqlString: string): Promise<object[]>; readNextValue(columnName: string, query?: object, startValue?: number): Promise<number>; existsByKey(key: string): Promise<boolean>; existByQuery(query: object): Promise<number>; findAndCount(options: Omit<FindAndCountOptions<Attributes<T>>, 'group'>): Promise<{ rows: T[]; count: number; }>; protected _create(value: T): Promise<T>; protected _bulkCreate(values: T[]): Promise<T[]>; protected _createByKey(value: T, key: string): Promise<T>; protected _readOrCreateByQuery(query: object): Promise<[T, boolean]>; protected _updateByKey(value: Partial<T>, key: string): Promise<T | undefined>; protected _updateAllByQuery(value: Partial<T>, query: object): Promise<T[]>; protected _deleteByKey(key: string): Promise<T | undefined>; protected _deleteAllByQuery(query: object): Promise<T[]>; }