// models/index.js

import SettingsType from './type/settings.js';
import UserParamValue from './type/user_param_value.js';
import UserParamType from './type/user_param.js';
import UserRightType from './type/user_right.js';
import User from './community/user.js';
import UserParam from './community/user_param.js';
import Login from './logs/login.js';
import UserRight from './community/user_right.js';
import InterestType from './type/interest.js';
import InterestTranslationType from './type/interest_translation.js';
import Interest from './community/interest.js';
import ContactMessage from './service/contactmessage.js';
import UserParamVisibilityType from './type/user_param_visibility.js';
import UserParamVisibility from './community/user_param_visibility.js';
import Folder from './community/folder.js';
import Image from './community/image.js';
import ImageVisibilityType from './type/image_visibility.js';
import ImageVisibilityUser from './community/image_visibility_user.js';
import FolderImageVisibility from './community/folder_image_visibility.js';
import ImageImageVisibility from './community/image_image_visibility.js';
import FolderVisibilityUser from './community/folder_visibility_user.js';
import GuestbookEntry from './community/guestbook.js';
import DiaryHistory from './community/diary_history.js';
import Diary from './community/diary.js';
import Forum from './forum/forum.js';
import ForumPermission from './forum/forum_permission.js';
import ForumUserPermission from './forum/forum_user_permission.js';
import Title from './forum/title.js';
import TitleHistory from './forum/title_history.js';
import Message from './forum/message.js';
import MessageHistory from './forum/message_history.js';
import MessageImage from './forum/message_image.js';
import ForumForumPermission from './forum/forum_forum_permission.js';
import Friendship from './community/friendship.js';
import Blog from './community/blog.js';
import BlogPost from './community/blog_post.js';

import FalukantUser from './falukant/data/user.js';
import RegionType from './falukant/type/region.js';
import RegionData from './falukant/data/region.js';
import FalukantPredefineFirstname from './falukant/predefine/firstname.js';
import FalukantPredefineLastname from './falukant/predefine/lastname.js';
import FalukantCharacter from './falukant/data/character.js';
import FalukantStock from './falukant/data/stock.js';
import FalukantStockType from './falukant/type/stock.js';
import ProductType from './falukant/type/product.js';
import Knowledge from './falukant/data/product_knowledge.js';
import TitleRequirement from './falukant/type/title_requirement.js';
import TitleOfNobility from './falukant/type/title_of_nobility.js';
import BranchType from './falukant/type/branch.js';
import Branch from './falukant/data/branch.js';
import Production from './falukant/data/production.js';
import Inventory from './falukant/data/inventory.js';
import BuyableStock from './falukant/data/buyable_stock.js';
import MoneyFlow from './falukant/log/moneyflow.js';
import Director from './falukant/data/director.js';
import DirectorProposal from './falukant/data/director_proposal.js';
import TownProductWorth from './falukant/data/town_product_worth.js';
import DayProduction from './falukant/log/dayproduction.js';
import DaySell from './falukant/log/daysell.js';
import Notification from './falukant/log/notification.js';
import MarriageProposal from './falukant/data/marriage_proposal.js';
import RelationshipType from './falukant/type/relationship.js';
import Relationship from './falukant/data/relationship.js';
import CharacterTrait from './falukant/type/character_trait.js';
import FalukantCharacterTrait from './falukant/data/falukant_character_trait.js';
import Mood from './falukant/type/mood.js';
import PromotionalGift from './falukant/type/promotional_gift.js';
import PromotionalGiftCharacterTrait from './falukant/predefine/promotional_gift_character_trait.js';
import PromotionalGiftMood from './falukant/predefine/promotional_gift_mood.js';
import PromotionalGiftLog from './falukant/log/promotional_gift.js';
import HouseType from './falukant/type/house.js';
import BuyableHouse from './falukant/data/buyable_house.js';
import UserHouse from './falukant/data/user_house.js';
import PartyType from './falukant/type/party.js';
import Party from './falukant/data/party.js';
import MusicType from './falukant/type/music.js';
import BanquetteType from './falukant/type/banquette.js';
import PartyInvitedNobility from './falukant/data/partyInvitedNobility.js';
import ReputationActionType from './falukant/type/reputation_action.js';
import ReputationActionLog from './falukant/log/reputation_action.js';
import ChildRelation from './falukant/data/child_relation.js';
import LearnRecipient from './falukant/type/learn_recipient.js';
import Learning from './falukant/data/learning.js';
import Credit from './falukant/data/credit.js';
import DebtorsPrism from './falukant/data/debtors_prism.js';
import HealthActivity from './falukant/log/health_activity.js';

// — Match3 Minigame —
import Match3Campaign from './match3/campaign.js';
import Match3Level from './match3/level.js';
import Match3TileType from './match3/tileType.js';
import Match3LevelTileType from './match3/levelTileType.js';
import Match3Objective from './match3/objective.js';
import Match3UserProgress from './match3/userProgress.js';
import Match3UserLevelProgress from './match3/userLevelProgress.js';

// — Taxi Minigame —
import { TaxiGameState, TaxiLevelStats, TaxiMapType, TaxiMap, TaxiMapTile, TaxiStreetName, TaxiMapTileStreet, TaxiMapTileHouse } from './taxi/index.js';
import TaxiHighscore from './minigames/taxiHighscore.js';

// — Politische Ämter (Politics) —
import PoliticalOfficeType from './falukant/type/political_office_type.js';
import PoliticalOfficeRequirement from './falukant/predefine/political_office_prerequisite.js';
import PoliticalOfficeBenefitType from './falukant/type/political_office_benefit_type.js';
import PoliticalOfficeBenefit from './falukant/predefine/political_office_benefit.js';
import PoliticalOffice from './falukant/data/political_office.js';
import Election from './falukant/data/election.js';
import Candidate from './falukant/data/candidate.js';
import Vote from './falukant/data/vote.js';
import ElectionResult from './falukant/data/election_result.js';
import PoliticalOfficeHistory from './falukant/log/political_office_history.js';
import ElectionHistory from './falukant/log/election_history.js';
import UndergroundType from './falukant/type/underground.js';
import Underground from './falukant/data/underground.js';
import VehicleType from './falukant/type/vehicle.js';
import Vehicle from './falukant/data/vehicle.js';
import Transport from './falukant/data/transport.js';
import RegionDistance from './falukant/data/region_distance.js';
import WeatherType from './falukant/type/weather.js';
import Weather from './falukant/data/weather.js';
import ProductWeatherEffect from './falukant/type/product_weather_effect.js';

import Room from './chat/room.js';
import ChatUser from './chat/user.js';
import ChatRight from './chat/rights.js';
import ChatUserRight from './chat/user_rights.js';
import RoomType from './chat/room_type.js';

const models = {
  SettingsType,
  UserParamValue,
  UserParamType,
  UserRightType,
  User,
  UserParam,
  Login,
  UserRight,
  InterestType,
  InterestTranslationType,
  Interest,
  ContactMessage,
  UserParamVisibilityType,
  UserParamVisibility,
  Folder,
  Image,
  ImageVisibilityType,
  ImageVisibilityUser,
  FolderImageVisibility,
  ImageImageVisibility,
  FolderVisibilityUser,
  GuestbookEntry,
  DiaryHistory,
  Diary,
  Forum,
  ForumPermission,
  ForumForumPermission,
  ForumUserPermission,
  Title,
  TitleHistory,
  Message,
  MessageHistory,
  MessageImage,
  Friendship,
  Blog,
  BlogPost,

  // Falukant core
  RegionType,
  RegionData,
  FalukantUser,
  FalukantPredefineFirstname,
  FalukantPredefineLastname,
  FalukantCharacter,
  FalukantStock,
  FalukantStockType,
  ProductType,
  Knowledge,
  TitleOfNobility,
  TitleRequirement,
  BranchType,
  Branch,
  Production,
  Inventory,
  BuyableStock,
  MoneyFlow,
  Director,
  DirectorProposal,
  TownProductWorth,
  DayProduction,
  DaySell,
  Notification,
  MarriageProposal,
  RelationshipType,
  Relationship,
  CharacterTrait,
  FalukantCharacterTrait,
  Mood,
  PromotionalGift,
  PromotionalGiftCharacterTrait,
  PromotionalGiftMood,
  PromotionalGiftLog,
  HouseType,
  BuyableHouse,
  UserHouse,
  PartyType,
  MusicType,
  BanquetteType,
  Party,
  PartyInvitedNobility,
  ReputationActionType,
  ReputationActionLog,
  ChildRelation,
  LearnRecipient,
  Learning,
  Credit,
  DebtorsPrism,
  HealthActivity,
  RegionDistance,
  VehicleType,
  Vehicle,
  Transport,
  PoliticalOfficeType,
  PoliticalOfficeRequirement,
  PoliticalOfficeBenefitType,
  PoliticalOfficeBenefit,
  PoliticalOffice,
  Election,
  Candidate,
  Vote,
  ElectionResult,
  PoliticalOfficeHistory,
  ElectionHistory,
  UndergroundType,
  Underground,
  WeatherType,
  Weather,
  ProductWeatherEffect,
  Room,
  ChatUser,
  ChatRight,
  ChatUserRight,
  RoomType,
  
  // Match3 Minigame
  Match3Campaign,
  Match3Level,
  Match3TileType,
  Match3LevelTileType,
  Match3Objective,
  Match3UserProgress,
  Match3UserLevelProgress,
  
  // Taxi Minigame
  TaxiGameState,
  TaxiLevelStats,
  TaxiMap,
  TaxiMapType,
  TaxiMapTile,
  TaxiStreetName,
  TaxiMapTileStreet,
  TaxiMapTileHouse,
  TaxiHighscore,
};

export default models;
