require('./migrations') // TODO: App Specific Models const {database} = require('@alancnet/material-framework/server') const { Terminal, Client, ServiceCategory, LaborCategory } = database const initialize = require('./initialize') const LaborServiceCategory = LaborCategory.belongsToMany(ServiceCategory, { through: 'laborServiceCategories' }) const ServiceLaborCategory = ServiceCategory.belongsToMany(LaborCategory, { through: 'laborServiceCategories' }) // const Terminal = require('./terminal') const Workday = require('./workday') const Service = require('./service') //const Client = require('./client') const StaffMember = require('./staff-member') const StaffingAgency = require('./staffing-agency') const Labor = require('./labor') const StaffMemberLabor = StaffMember.hasMany(Labor) const LaborStaffMember = Labor.belongsTo(StaffMember) const WorkdayLabor = Workday.hasMany(Labor) const LaborWorkday = Labor.belongsTo(Workday) const TerminalWorkday = Terminal.hasMany(Workday) const WorkdayTerminal = Workday.belongsTo(Terminal) const WorkdayService = Workday.hasMany(Service) const ServiceWorkday = Service.belongsTo(Workday) const ClientService = Client.hasMany(Service) const ServiceClient = Service.belongsTo(Client) const TerminalStaffMember = Terminal.hasMany(StaffMember) const StaffMemberTerminal = StaffMember.belongsTo(Terminal) const LaborCategoryStaffMember = LaborCategory.hasMany(StaffMember) const StaffMemberLaborCategory = StaffMember.belongsTo(LaborCategory) const TerminalClient = Terminal.hasMany(Client) const ClientTerminal = Client.belongsTo(Terminal) // const StaffingAgencyStaffMember = StaffingAgency.hasMany(StaffMember) // const StaffMemberStaffingAgency = StaffMember.belongsTo(StaffingAgency) const originalInit = database.init const init = async () => { await originalInit() await initialize.init(database) } module.exports = Object.assign(database, { init, Terminal, Workday, Service, Client, StaffMember, StaffingAgency, TerminalWorkday, WorkdayTerminal, WorkdayService, ServiceWorkday, ClientService, ServiceClient, TerminalStaffMember, StaffMemberTerminal, Labor, TerminalClient, ClientTerminal, LaborServiceCategory, ServiceLaborCategory, LaborCategoryStaffMember, StaffMemberLaborCategory, StaffMemberLabor, LaborStaffMember, WorkdayLabor, LaborWorkday })