@avonjs/avonjs
Version:
A fluent Node.js API generator.
52 lines (51 loc) • 1.52 kB
TypeScript
import Joi from 'joi';
import type { Filter } from '../Filters';
import type AvonRequest from '../Http/Requests/AvonRequest';
import type { AnyValue, DefaultCallback, OpenApiSchema, Optional } from '../Contracts';
import Field from './Field';
export default class Decimal extends Field {
/**
* The callback to be used for the field's default value.
*/
defaultCallback: DefaultCallback;
/**
* The validation rules callback for creation and updates.
*/
protected rulesSchema: Joi.NumberSchema<number>;
/**
* The validation rules callback for creation.
*/
protected creationRulesSchema: Joi.NumberSchema<number>;
/**
* The validation rules callback for updates.
*/
protected updateRulesSchema: Joi.NumberSchema<number>;
/**
* The maximum number of decimal places allowed.
*/
protected decimal: number;
/**
* Mutate the field value for response.
*/
getMutatedValue(request: AvonRequest, value: AnyValue): Optional<number>;
/**
* Specifies the maximum number of decimal places.
*/
precision(decimal: number): this;
/**
* Determine field is filterable or not.
*/
isFilterable(): boolean;
/**
* Determine field is orderable or not.
*/
isOrderable(): boolean;
/**
* Make the field filter.
*/
makeFilter(request: AvonRequest): Filter;
/**
* Get the swagger-ui schema.
*/
protected baseSchema(request: AvonRequest): OpenApiSchema;
}