import { raw } from 'objection'; import Base from './base.js'; import User from './user.js'; import Subscription from './subscription.ee.js'; class UsageData extends Base { static tableName = 'usage_data'; static jsonSchema = { type: 'object', required: ['userId', 'consumedTaskCount', 'nextResetAt'], properties: { id: { type: 'string', format: 'uuid' }, userId: { type: 'string', format: 'uuid' }, subscriptionId: { type: 'string', format: 'uuid' }, consumedTaskCount: { type: 'integer' }, nextResetAt: { type: 'string' }, deletedAt: { type: 'string' }, createdAt: { type: 'string' }, updatedAt: { type: 'string' }, }, }; static relationMappings = () => ({ user: { relation: Base.BelongsToOneRelation, modelClass: User, join: { from: 'usage_data.user_id', to: 'users.id', }, }, subscription: { relation: Base.BelongsToOneRelation, modelClass: Subscription, join: { from: 'usage_data.subscription_id', to: 'subscriptions.id', }, }, }); async increaseConsumedTaskCountByOne() { return await this.$query().patch({ consumedTaskCount: raw('consumed_task_count + 1'), }); } } export default UsageData;