import { Model, mixin } from 'objection'; import TenantModel from 'models/TenantModel'; export default class SaleEstimate extends TenantModel { /** * Table name */ static get tableName() { return 'sales_estimates'; } /** * Timestamps columns. */ get timestamps() { return ['createdAt', 'updatedAt']; } /** * Relationship mapping. */ static get relationMappings() { const ItemEntry = require('models/ItemEntry'); const Contact = require('models/Contact'); return { customer: { relation: Model.BelongsToOneRelation, modelClass: Contact.default, join: { from: 'sales_estimates.customerId', to: 'contacts.id', }, filter(query) { query.where('contact_service', 'customer'); } }, entries: { relation: Model.HasManyRelation, modelClass: ItemEntry.default, join: { from: 'sales_estimates.id', to: 'items_entries.referenceId', }, filter(builder) { builder.where('reference_type', 'SaleEstimate'); }, }, }; } /** * Model defined fields. */ static get fields() { return { created_at: { label: 'Created at', column: 'created_at', columnType: 'date', }, }; } }