import {Model} from '../model/Model' import {Field} from '../model/Field' import {FieldType} from '../types' import {Maybe} from '../../util' import {ModelBuilder} from '../model/ModelBuilder' /** * A model instance which stores records from the ORMCache driver. */ export class CacheModel extends Model { protected static table = 'caches' // FIXME allow configuring protected static key = 'cache_key' @Field(FieldType.varchar, 'cache_key') public cacheKey!: string @Field(FieldType.text, 'cache_value') public cacheValue!: string @Field(FieldType.timestamp, 'cache_expires') public cacheExpires?: Date public static withCacheKey(key: string): ModelBuilder { return this.query() .whereKey(key) .whereProperty('cacheExpires', '>', new Date()) } public static getCacheKey(key: string): Promise> { return this.withCacheKey(key) .first() } }