@avonjs/avonjs
Version:
A fluent Node.js API generator.
113 lines (112 loc) • 4.04 kB
TypeScript
import { type AbstractMixable, type Args, type Model, type PrimaryKey, type SoftDeletes as SoftDeletesContract, type Where } from '../Contracts';
import type Repository from '../Repositories/Repository';
declare const _default: <TModel extends Model, TBase extends AbstractMixable<Repository<TModel>> = AbstractMixable<Repository<TModel>>>(Parent: TBase) => (abstract new (...params: Args) => {
/**
* Store given model into the storage.
*/
store(model: TModel): Promise<TModel>;
/**
* Ensure that "delete at" attribute is set.
*/
ensureOfSoftDeletes(model: TModel): TModel;
/**
* Delete model for the given key.
*/
delete(key: PrimaryKey): Promise<void>;
/**
* Fill the "deleted at" column.
*/
fillSoftDeletes(model: TModel): TModel;
/**
* Reset the "deleted at" column.
*/
resetSoftDeletes(model: TModel): TModel;
/**
* Delete model for the given key.
*/
forceDelete(key: PrimaryKey): Promise<void>;
/**
* Restore the delete model for given key.
*/
restore(key: PrimaryKey): Promise<TModel>;
/**
* Apply soft-delete constraint.
*/
applySoftDelete(): Repository<TModel> & SoftDeletesContract<TModel>;
/**
* Apply soft-delete constraint.
*/
withoutTrashed(): Repository<TModel> & SoftDeletesContract<TModel>;
/**
* Ignore soft-delete constraint.
*/
withTrashed(): Repository<TModel> & SoftDeletesContract<TModel>;
/**
* Apply only trashed record constraints.
*/
onlyTrashed(): Repository<TModel> & SoftDeletesContract<TModel>;
/**
* Removes all scopes.
*/
removeSoftDeleteQueries(): Repository<TModel> & SoftDeletesContract<TModel>;
/**
* Get soft-delete constraint.
*/
scopeSoftDelete(): Where;
/**
* Get only trashed records constraint.
*/
scopeTrashedRecords(): Where;
/**
* Determine whether a given resource is "soft-deleted".
*/
isSoftDeleted(resource: Model): boolean;
/**
* Get name of `deleted_at` key.
*/
getDeletedAtKey(): string;
/**
* Get value for `deleted_at` key.
*/
getDeletedAtValue(): unknown;
/**
* Get a fresh timestamp for the model.
*/
freshTimestamp(): unknown;
/**
* Get value for available records.
*
* @deprecated Use `getDeletedAtValueOnRestore` instead.
*/
getSoftDeleteValue(): unknown;
/**
* Get value for available records.
*/
getDeletedAtValueOnRestore(): unknown;
wheres: Where[];
orders: import("../Contracts").Order[];
modifiers: import("../Contracts").QueryModifierCallback[];
_transaction?: import("../Contracts").Transaction;
transaction<V>(callback: import("../Contracts").TransactionCallback<V, any>): Promise<V>;
setTransaction(transaction?: import("../Contracts").Transaction): any;
getTransaction(): import("../Contracts").Transaction | undefined;
runningInTransaction(): boolean;
prepareTransaction(): Promise<import("../Contracts").Transaction>;
where(where: Where | Where[]): any;
setWheres(wheres: Where[]): any;
getWheres(): Where[];
order(order: import("../Contracts").Order | import("../Contracts").Order[]): any;
setOrders(orders: import("../Contracts").Order[]): any;
getOrders(): import("../Contracts").Order[];
modify<T>(modifier: import("../Contracts").QueryModifierCallback<T>): any;
find(key: PrimaryKey): Promise<import("../Contracts").Optional<TModel>>;
whereKey(key: PrimaryKey): any;
whereKeys(keys: Array<PrimaryKey>): any;
fillModel(result: import("../Contracts").AnyRecord): TModel;
search(search: string, page?: number, perPage?: number): Promise<import("../Contracts").SearchCollection>;
all(wheres?: Where[]): Promise<TModel[]>;
first(wheres?: Where[]): Promise<import("../Contracts").Optional<TModel>>;
update(model: TModel): Promise<TModel>;
model(): TModel;
}) & TBase;
export default _default;