Duffer Derek
import Sequelize from "sequelize";
import dbConnection from "../config/database.js";
const sequelize = dbConnection;
const inquiry = sequelize.define(
"inquiry",
{
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER,
},
item_id: {
type: Sequelize.BIGINT,
allowNull: true,
defaultValue: null,
},
title: {
type: Sequelize.TEXT,
allowNull: true,
},
first_name: {
type: Sequelize.TEXT,
allowNull: true,
},
last_name: {
type: Sequelize.TEXT,
allowNull: true,
},
full_address: {
type: Sequelize.TEXT,
allowNull: true,
},
housing_type: {
type: Sequelize.TEXT,
allowNull: true,
},
phone_number: {
type: Sequelize.TEXT,
allowNull: true,
},
email: {
type: Sequelize.TEXT,
allowNull: true,
},
task_postal_code: {
type: Sequelize.TEXT,
allowNull: true,
},
task_description: {
type: Sequelize.TEXT,
allowNull: true,
},
task_start_preferred_date: {
type: Sequelize.TEXT,
allowNull: true,
},
agreed_followup: {
type: Sequelize.DATE,
allowNull: true,
},
followup_status: {
type: Sequelize.TEXT,
allowNull: true,
},
subcontractor_conversation_note: {
type: Sequelize.TEXT,
allowNull: true,
},
conversation_comment: {
type: Sequelize.TEXT,
allowNull: true,
},
inspection_date_start: {
type: Sequelize.DATE,
allowNull: true,
},
inspection_date_end: {
type: Sequelize.DATE,
allowNull: true,
},
status: {
type: Sequelize.TEXT,
allowNull: true,
},
painterkanon_employee: {
type: Sequelize.TEXT,
allowNull: true,
},
region: {
type: Sequelize.TEXT,
allowNull: true,
},
gk_service_manager: {
type: Sequelize.TEXT,
allowNull: true,
},
gk_total_price: {
type: Sequelize.TEXT,
allowNull: true,
},
gk_discounted_price: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
gk_full_address: {
type: Sequelize.TEXT,
allowNull: true,
},
floor_cannon_employee: {
type: Sequelize.TEXT,
allowNull: true,
},
gk_rooms_to_sand: {
type: Sequelize.TEXT,
allowNull: true,
},
area_sqm: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
number_of_m_two_planing: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
stairs_count: {
type: Sequelize.INTEGER,
allowNull: true,
},
performed_in_two_stages: {
type: Sequelize.INTEGER,
allowNull: true,
},
task_based_on_invoice: {
type: Sequelize.TEXT,
allowNull: true,
},
task_description_invoice: {
type: Sequelize.TEXT,
allowNull: true,
},
offer_section: {
type: Sequelize.JSON,
allowNull: true,
},
estimated_material_usage: {
type: Sequelize.TEXT,
allowNull: true,
},
task_description_offer_pdf: {
type: Sequelize.TEXT,
allowNull: true,
},
task_price_estimate: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
hourly_rate: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
estimated_hours: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
estimate_sent_date: {
type: Sequelize.DATE,
allowNull: true,
},
offer_sent_date: {
type: Sequelize.DATE,
allowNull: true,
},
add_product: {
type: Sequelize.BIGINT,
allowNull: true,
},
price_for_the_task: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
estimated_days: {
type: Sequelize.TEXT,
allowNull: true,
},
additional_services_text: {
type: Sequelize.TEXT,
allowNull: true,
},
not_included_in_offer: {
type: Sequelize.TEXT,
allowNull: true,
},
free_of_charge: {
type: Sequelize.TEXT,
allowNull: true,
},
offer_section_2: {
type: Sequelize.JSON,
allowNull: true,
},
task_description_offer2: {
type: Sequelize.TEXT,
allowNull: true,
},
offer_price_2: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
offer_sent_date_2: {
type: Sequelize.DATE,
allowNull: true,
},
additional_info: {
type: Sequelize.TEXT,
allowNull: true,
},
floor_area_size: {
type: Sequelize.TEXT,
allowNull: true,
},
rooms_to_paint: {
type: Sequelize.TEXT,
allowNull: true,
},
price: {
type: Sequelize.TEXT,
allowNull: true,
},
mk_standard_offer_price_text: {
type: Sequelize.TEXT,
allowNull: true,
},
partner_trigger: {
type: Sequelize.TEXT,
allowNull: true,
},
partner: {
type: Sequelize.BIGINT,
allowNull: true,
},
price_evaluation: {
type: Sequelize.JSON,
allowNull: true,
},
material_cost: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
trigger_price_evaluation: {
type: Sequelize.TEXT,
allowNull: true,
},
calc_price_for_painter: {
type: Sequelize.JSON,
allowNull: true,
},
painter_final_price: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
calc_price_for_painter_input: {
type: Sequelize.DECIMAL(10, 2),
allowNull: true,
},
revenue_per_hour: {
type: Sequelize.TEXT,
allowNull: true,
},
output_material_cost: {
type: Sequelize.TEXT,
allowNull: true,
},
output_employee_salary_cost: {
type: Sequelize.TEXT,
allowNull: true,
},
execution_date_start: {
type: Sequelize.DATE,
allowNull: true,
},
execution_date_end: {
type: Sequelize.DATE,
allowNull: true,
},
is_english: {
type: Sequelize.TEXT,
allowNull: true,
},
other_images_from_website: {
type: Sequelize.TEXT,
allowNull: true,
},
office_partner: {
type: Sequelize.BIGINT,
allowNull: true,
defaultValue: null,
},
created_at: {
allowNull: false,
type: Sequelize.DATE,
},
updated_at: {
allowNull: false,
type: Sequelize.DATE,
},
},
{
tableName: "inquiry",
timestamps: true,
updatedAt: "updated_at",
createdAt: "created_at",
}
);
// Add association with files
import files from "./files.js";
files.belongsTo(inquiry, { foreignKey: "item_id", targetKey: "item_id" });
inquiry.hasMany(files, { foreignKey: "item_id", sourceKey: "item_id" });
export default inquiry;
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists