PHPackages                             mattfalahe/manager-core - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mattfalahe/manager-core

ActiveSeat-plugin[Utility &amp; Helpers](/categories/utility)

mattfalahe/manager-core
=======================

Core management plugin for SeAT - Provides appraisal services, market pricing, and inter-plugin bridge functionality

0321PHP

Since Jan 3Pushed 1mo agoCompare

[ Source](https://github.com/MattFalahe/Manager-Core)[ Packagist](https://packagist.org/packages/mattfalahe/manager-core)[ RSS](/packages/mattfalahe-manager-core/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (3)Used By (0)

Manager Core - SeAT Plugin
==========================

[](#manager-core---seat-plugin)

[![Latest Version](https://camo.githubusercontent.com/cc0c7dec033e5067ba0880020a3e8818d8514a372c56d678f1ce40c0452eb21f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d61747466616c6168652f6d616e616765722d636f72652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/mattfalahe/manager-core)[![License](https://camo.githubusercontent.com/37c9aa11511cabae70647d9c92694be2a286bd25c284de636a228b0ecff380ea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c2d2d322e302d626c75652e7376673f7374796c653d666c61742d737175617265)](LICENSE)

**Manager Core** is a foundational plugin for SeAT (Simple EVE API Tool) v5.x that provides:

- 📊 **Market Pricing Service** - Centralized ESI market data fetching and caching
- 💰 **Appraisal System** - Parse and appraise EVE items from various formats
- 🔌 **Plugin Bridge** - Inter-plugin communication framework
- 🎯 **Type Subscriptions** - Plugins subscribe to item types for automatic price tracking

Features
--------

[](#features)

### 1. Market Pricing Service

[](#1-market-pricing-service)

- Fetches market orders from ESI for multiple regions (Jita, Amarr, Dodixie, Hek, Rens)
- Calculates comprehensive price statistics (min, max, avg, median, percentile, stddev)
- Stores historical price data for trend analysis
- Allows plugins to subscribe to specific item types
- Updates every 4 hours (configurable)
- Eliminates redundant ESI calls across plugins

### 2. Appraisal System

[](#2-appraisal-system)

Based on the proven [go-evepraisal](https://github.com/evepraisal/go-evepraisal) architecture, supports parsing:

- **Cargo Scans** - `1,234 Item Name` format
- **Asset Lists** - Tab-separated formats
- **Simple Listings** - One item per line
- **Contracts** - Contract item lists
- *More parsers coming soon: Killmails, D-Scan, EFT fittings, etc.*

Features:

- Automatic format detection
- Price percentage modifiers (e.g., 90% for buybacks)
- Private appraisals with secure tokens
- Unparsed line tracking
- Appraisal history per user

### 3. Plugin Bridge

[](#3-plugin-bridge)

Enables seamless integration between Manager Core and other MattFalahe plugins:

- Auto-discovery of compatible plugins
- Capability registry (plugins advertise their features)
- Cross-plugin method calls
- Shared service access
- Event broadcasting

**Compatible Plugins:**

- [Mining Manager](https://github.com/MattFalahe/mining-manager)
- Buyback Manager *(coming soon)*
- Structure Manager *(coming soon)*
- Discord Pings *(coming soon)*

Installation
------------

[](#installation)

### Requirements

[](#requirements)

- SeAT v5.x
- PHP 8.0 or higher
- Laravel 10.x

### Install via Composer

[](#install-via-composer)

```
composer require mattfalahe/manager-core
```

### Run Migrations

[](#run-migrations)

```
php artisan migrate
```

### Publish Config (Optional)

[](#publish-config-optional)

```
php artisan vendor:publish --provider="ManagerCore\ManagerCoreServiceProvider" --tag=config
```

### Seed Schedules

[](#seed-schedules)

The plugin automatically seeds scheduled jobs via `ScheduleSeeder`. These jobs will run:

- **Price Updates**: Every 4 hours
- **Cleanup**: Daily at 3 AM

Configuration
-------------

[](#configuration)

Edit `config/manager-core.php` to customize:

### Market Pricing

[](#market-pricing)

```
'pricing' => [
    'update_frequency' => 240, // minutes (4 hours)
    'default_market' => 'jita',
    'markets' => [
        'jita' => [...],
        'amarr' => [...],
        // etc.
    ],
    'min_order_volume' => 2,
    'history_retention_days' => 90,
],
```

### Appraisal

[](#appraisal)

```
'appraisal' => [
    'default_percentage' => 100,
    'retention_days' => 30,
    'max_items' => 1000,
],
```

### Plugin Bridge

[](#plugin-bridge)

```
'bridge' => [
    'auto_discover' => true,
    'compatible_plugins' => [
        'MiningManager',
        'BuybackManager',
        // Add your custom plugins here
    ],
    'cache_duration' => 60,
],
```

Usage
-----

[](#usage)

### For Users

[](#for-users)

#### Creating an Appraisal

[](#creating-an-appraisal)

1. Navigate to **Manager Core → Appraisal**
2. Paste your cargo scan, asset list, or item list
3. Select market (Jita, Amarr, etc.)
4. Optionally set a price percentage modifier
5. Click **Appraise**

#### Viewing Market Prices

[](#viewing-market-prices)

1. Navigate to **Manager Core → Market Prices**
2. Search for an item or browse subscribed types
3. View current prices and 7-day trends

### For Plugin Developers

[](#for-plugin-developers)

#### Registering Type Subscriptions

[](#registering-type-subscriptions)

Your plugin can subscribe to item types for automatic price tracking:

```
use ManagerCore\Services\PricingService;

class YourPlugin
{
    public function boot(PricingService $pricing)
    {
        $pricing->registerTypes('your-plugin', [
            34,  // Tritanium
            35,  // Pyerite
            36,  // Mexallon
            // ... more type IDs
        ], 'jita', $priority = 1);
    }
}
```

#### Getting Prices

[](#getting-prices)

```
use ManagerCore\Services\PricingService;

$pricing = app(PricingService::class);

// Single item
$price = $pricing->getPrice(34, 'jita'); // Tritanium in Jita

// Multiple items
$prices = $pricing->getPrice([34, 35, 36], 'jita');

// Get price trend
$trend = $pricing->getTrend(34, 'jita', 7); // 7-day trend
```

#### Using the Appraisal Service

[](#using-the-appraisal-service)

```
use ManagerCore\Services\AppraisalService;

$appraisalService = app(AppraisalService::class);

$rawInput = "1000 Tritanium\n500 Pyerite";

$appraisal = $appraisalService->createAppraisal($rawInput, [
    'market' => 'jita',
    'price_percentage' => 90, // 90% of market price
    'user_id' => auth()->user()->id,
]);

// Access results
$totalBuy = $appraisal->total_buy;
$totalSell = $appraisal->total_sell;
$items = $appraisal->items;
```

#### Registering Plugin Capabilities

[](#registering-plugin-capabilities)

```
use ManagerCore\Services\PluginBridge;

class YourPluginServiceProvider
{
    public function boot(PluginBridge $bridge)
    {
        // Register a notification capability
        $bridge->registerCapability('your-plugin', 'notify', function($type, $data) {
            // Handle notification
            YourNotificationService::send($type, $data);
        });

        // Register an appraisal capability
        $bridge->registerCapability('your-plugin', 'appraise', function($items) {
            return YourAppraisalLogic::calculate($items);
        });
    }
}
```

#### Calling Other Plugin Capabilities

[](#calling-other-plugin-capabilities)

```
use ManagerCore\Services\PluginBridge;

$bridge = app(PluginBridge::class);

// Check if Discord Pings is available
if ($bridge->hasPlugin('discord-pings')) {
    $bridge->notify('discord-pings', 'buyback.completed', [
        'character' => $characterName,
        'value' => $totalValue,
    ]);
}

// Call Mining Manager capability
if ($bridge->hasCapability('mining-manager', 'calculate-taxes')) {
    $taxes = $bridge->call('mining-manager', 'calculate-taxes', $miningData);
}
```

Console Commands
----------------

[](#console-commands)

### Update Market Prices

[](#update-market-prices)

```
# Update all markets
php artisan manager-core:update-prices --market=all

# Update specific market
php artisan manager-core:update-prices --market=jita
```

### Cleanup Old Data

[](#cleanup-old-data)

```
php artisan manager-core:cleanup
```

### Diagnose Plugin Bridge

[](#diagnose-plugin-bridge)

```
php artisan manager-core:diagnose
```

Database Schema
---------------

[](#database-schema)

### Core Tables

[](#core-tables)

- `manager_core_market_prices` - Current market prices
- `manager_core_price_history` - Historical price data
- `manager_core_type_subscriptions` - Plugin subscriptions to item types
- `manager_core_appraisals` - Appraisal records
- `manager_core_appraisal_items` - Items within appraisals
- `manager_core_plugin_registry` - Registered plugins and capabilities

Architecture
------------

[](#architecture)

Manager Core is designed as a **service layer** for other plugins:

```
┌─────────────────────────────────────────────────┐
│           Other Plugins                         │
│  (Mining Manager, Buyback Manager, etc.)        │
└────────────────┬────────────────────────────────┘
                 │
                 ▼
┌─────────────────────────────────────────────────┐
│           Manager Core                          │
│  ┌──────────────┐  ┌─────────────┐             │
│  │ Plugin Bridge│  │   Pricing   │             │
│  └──────────────┘  │   Service   │             │
│  ┌──────────────┐  └─────────────┘             │
│  │  Appraisal   │  ┌─────────────┐             │
│  │   Service    │  │ Parser Svc  │             │
│  └──────────────┘  └─────────────┘             │
└────────────────┬────────────────────────────────┘
                 │
                 ▼
┌─────────────────────────────────────────────────┐
│              EVE ESI API                        │
└─────────────────────────────────────────────────┘

```

API Design
----------

[](#api-design)

Inspired by [go-evepraisal](https://github.com/evepraisal/go-evepraisal), Manager Core implements:

- **Parser system** - Modular, regex-based item parsing
- **Price aggregation** - Statistical price calculations (percentiles, stddev, etc.)
- **Type database integration** - Seamless integration with SeAT's SDE
- **ESI market data fetching** - Efficient, paginated ESI calls with caching

Contributing
------------

[](#contributing)

Contributions are welcome! Please:

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request

Support
-------

[](#support)

- **Issues**: [GitHub Issues](https://github.com/MattFalahe/manager-core/issues)
- **Discord**: [SeAT Discord](https://discord.gg/seat)

License
-------

[](#license)

This project is licensed under the GPL-2.0-or-later license. See [LICENSE](LICENSE) for details.

Credits
-------

[](#credits)

- **Author**: Matt Falahe
- **Inspired by**: [go-evepraisal](https://github.com/evepraisal/go-evepraisal)
- **Built for**: [SeAT](https://github.com/eveseat/seat)

Roadmap
-------

[](#roadmap)

### v1.1

[](#v11)

- Additional parsers (Killmail, D-Scan, EFT, Contracts)
- Price alerts and notifications
- API endpoints for external integrations
- Advanced trend analysis

### v1.2

[](#v12)

- Multi-region price comparison
- Blueprint manufacturing cost calculations
- Reprocessing value calculations
- Custom market hubs

### v2.0

[](#v20)

- Machine learning price predictions
- Market manipulation detection
- Advanced appraisal templates
- Full REST API

---

**Made with ❤️ for the EVE Online community**

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance64

Regular maintenance activity

Popularity16

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/f0a1dd29a419ebc176eeb45fbf4ab22e388fa624f99c4ecc94976b73cb50d6ca?d=identicon)[MattFalahe](/maintainers/MattFalahe)

---

Top Contributors

[![MattFalahe](https://avatars.githubusercontent.com/u/47831385?v=4)](https://github.com/MattFalahe "MattFalahe (3 commits)")

### Embed Badge

![Health badge](/badges/mattfalahe-manager-core/health.svg)

```
[![Health](https://phpackages.com/badges/mattfalahe-manager-core/health.svg)](https://phpackages.com/packages/mattfalahe-manager-core)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
