raykazi / seat-moon-extractions
SeAT plugin for exposing corporation moon extraction times via API
v2.0
2025-09-24 16:45 UTC
Requires
- ext-json: *
- darkaonline/l5-swagger: ^8.0
- eveseat/api: ^5.0.0
- eveseat/eveapi: ^5.0.0
- eveseat/services: ^5.0.0
- eveseat/web: ^5.0.0
README
This is a SeAT plugin for EVE Online that exposes corporation moon extraction times through a RESTful API.
Project Structure
- Follows SeAT's plugin architecture using Laravel patterns
- PHP 8.1+ with Laravel framework
- Uses SeAT's EVE API integration and authentication
- PSR-4 autoloading standards
- Main components located in
src/
:MoonExtractionsServiceProvider.php
: Registers plugin services and routesCommands/
: Artisan commands for manual synchronizationHttp/Controllers/Api/V2/
: API controllers for moon extraction dataHttp/routes.php
: API route definitionsHttp/Resources/
: API resource and collection classes
Key Components
- Models:
MoonExtraction
model represents moon mining extractions - Controllers: API controllers for exposing extraction data
- Jobs: Background jobs for syncing data from EVE's ESI API
- Commands: Artisan commands for manual synchronization
- Routes: API routes following RESTful conventions
SeAT Integration
- Extends SeAT's
AbstractAuthCorporationJob
for ESI API calls - Uses SeAT's authentication and token management
- Integrates with SeAT's universe data models (systems, regions)
- Follows SeAT's plugin service provider pattern
API Endpoints
GET /api/v1/moon-extractions/
- List all extractions with filteringGET /api/v1/moon-extractions/corporation/{id}
- Corporation-specific extractionsGET /api/v1/moon-extractions/system/{id}
- System-specific extractionsGET /api/v1/moon-extractions/upcoming
- Upcoming extractionsGET /api/v1/moon-extractions/statistics
- Extraction statistics
Features
- Real-time extraction data sync from EVE's ESI API
- RESTful endpoints for accessing extraction data
- Multi-corporation support
- Advanced filtering by corporation, system, region, and time ranges
- Extraction statistics and summaries
- Caching for frequently accessed data
- Automated background syncing via scheduled jobs
Development Guidelines
- Follow Laravel coding standards and conventions
- Use SeAT's existing patterns for ESI API integration
- Implement proper error handling and logging
- Use caching for frequently accessed data
- Follow semantic versioning for releases
- Write comprehensive tests for API endpoints
Installation
- Install via Composer:
composer require seat/moon-extractions
- Register the plugin in SeAT (see SeAT documentation for plugin registration).
- Run migrations and publish resources as needed.
License
This project is open-source and available under the MIT License.