raykazi / seat-moon-extractions
SeAT plugin for exposing corporation moon extraction times via API
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 1
Type:seat-plugin
pkg:composer/raykazi/seat-moon-extractions
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: 
MoonExtractionmodel 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 
AbstractAuthCorporationJobfor 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.