import "dotenv/config"; import "reflect-metadata"; import { DataSource } from "typeorm"; import { configCheck, DB_HOST, DB_NAME, DB_PASSWORD, DB_PORT, DB_USERNAME } from "./env.defaults"; import { user } from "./entity/management/user"; import { refresh } from "./entity/refresh"; import { invite } from "./entity/management/invite"; import { userPermission } from "./entity/management/user_permission"; import { role } from "./entity/management/role"; import { rolePermission } from "./entity/management/role_permission"; import { award } from "./entity/configuration/award"; import { communication } from "./entity/club/member/communication"; import { communicationType } from "./entity/configuration/communicationType"; import { executivePosition } from "./entity/configuration/executivePosition"; import { membershipStatus } from "./entity/configuration/membershipStatus"; import { qualification } from "./entity/configuration/qualification"; import { member } from "./entity/club/member/member"; import { memberAwards } from "./entity/club/member/memberAwards"; import { memberExecutivePositions } from "./entity/club/member/memberExecutivePositions"; import { memberQualifications } from "./entity/club/member/memberQualifications"; import { membership } from "./entity/club/member/membership"; import { protocol } from "./entity/club/protocol/protocol"; import { protocolAgenda } from "./entity/club/protocol/protocolAgenda"; import { protocolDecision } from "./entity/club/protocol/protocolDecision"; import { protocolPresence } from "./entity/club/protocol/protocolPresence"; import { protocolVoting } from "./entity/club/protocol/protocolVoting"; import { protocolPrintout } from "./entity/club/protocol/protocolPrintout"; import { calendar } from "./entity/club/calendar"; import { calendarType } from "./entity/configuration/calendarType"; import { reset } from "./entity/reset"; import { query } from "./entity/configuration/query"; import { memberView } from "./views/memberView"; import { memberExecutivePositionsView } from "./views/memberExecutivePositionView"; import { memberQualificationsView } from "./views/memberQualificationsView"; import { membershipTotalView, membershipView } from "./views/membershipsView"; import { template } from "./entity/configuration/template"; import { templateUsage } from "./entity/configuration/templateUsage"; import { newsletter } from "./entity/club/newsletter/newsletter"; import { newsletterDates } from "./entity/club/newsletter/newsletterDates"; import { newsletterRecipients } from "./entity/club/newsletter/newsletterRecipients"; import { newsletterConfig } from "./entity/configuration/newsletterConfig"; import { webapi } from "./entity/management/webapi"; import { webapiPermission } from "./entity/management/webapi_permission"; import { salutation } from "./entity/configuration/salutation"; import { setting } from "./entity/management/setting"; import { education } from "./entity/configuration/education"; import { memberEducations } from "./entity/club/member/memberEducations"; import { BackupAndResetDatabase1749296262915 } from "./migrations/1749296262915-BackupAndResetDatabase"; import { CreateSchema1749296280721 } from "./migrations/1749296280721-CreateSchema"; configCheck(); const dataSource = new DataSource({ type: "postgres", host: DB_HOST, port: DB_PORT, username: DB_USERNAME, password: DB_PASSWORD, database: DB_NAME, synchronize: false, logging: process.env.NODE_ENV ? true : ["schema", "error", "warn", "log", "migration"], entities: [ user, refresh, invite, reset, userPermission, role, rolePermission, award, communication, communicationType, executivePosition, membershipStatus, education, qualification, salutation, member, memberAwards, memberExecutivePositions, memberQualifications, membership, memberEducations, protocol, protocolAgenda, protocolDecision, protocolPresence, protocolVoting, protocolPrintout, calendar, calendarType, query, template, templateUsage, newsletter, newsletterDates, newsletterRecipients, newsletterConfig, memberView, memberExecutivePositionsView, memberQualificationsView, membershipView, membershipTotalView, webapi, webapiPermission, setting, ], migrations: [BackupAndResetDatabase1749296262915, CreateSchema1749296280721], migrationsRun: true, migrationsTransactionMode: "each", subscribers: [], }); export { dataSource };