@citrineos/data
Version:
The OCPP data module which includes all persistence layer implementation.
29 lines (28 loc) • 2.17 kB
TypeScript
import { type BootstrapConfig, CrudRepository } from '@citrineos/base';
import { type Model, type Sequelize } from 'sequelize-typescript';
import { type ILogObj, Logger } from 'tslog';
import type { 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: BootstrapConfig, namespace: string, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
readByKey(tenantId: number, key: string | number, namespace?: string): Promise<T | undefined>;
readAllByQuery(tenantId: number, query: object, namespace?: string): Promise<T[]>;
readAllBySqlString(tenantId: number, sqlString: string, _namespace?: string): Promise<object[]>;
readNextValue(tenantId: number, columnName: string, query?: object, startValue?: number, namespace?: string): Promise<number>;
existsByKey(tenantId: number, key: string, namespace?: string): Promise<boolean>;
existByQuery(tenantId: number, query: object, namespace?: string): Promise<number>;
findAndCount(tenantId: number, options: Omit<FindAndCountOptions<Attributes<T>>, 'group'>, namespace?: string): Promise<{
rows: T[];
count: number;
}>;
protected _create(tenantId: number, value: T, _namespace?: string): Promise<T>;
protected _bulkCreate(tenantId: number, values: T[], namespace?: string): Promise<T[]>;
protected _createByKey(tenantId: number, value: T, key: string, namespace?: string): Promise<T>;
protected _readOrCreateByQuery(tenantId: number, query: object, namespace?: string): Promise<[T, boolean]>;
protected _updateByKey(tenantId: number, value: Partial<T>, key: string, namespace?: string): Promise<T | undefined>;
protected _updateAllByQuery(tenantId: number, value: Partial<T>, query: object, namespace?: string): Promise<T[]>;
protected _deleteByKey(tenantId: number, key: string, namespace?: string): Promise<T | undefined>;
protected _deleteAllByQuery(tenantId: number, query: object, namespace?: string): Promise<T[]>;
}