Files
alliance-services/database/migrations/2026_03_10_013849_create_eve_tables.php
2026-03-15 17:41:09 -05:00

684 lines
26 KiB
PHP

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
if(!Schema::hasTable('Config')) {
Schema::create('Config', function (Blueprint $table) {
$table->id();
$table->decimal('RentalTax', 5, 2);
$table->decimal('RefineRate', 20, 2);
$table->unsignedBigInteger('RentalTime');
$table->timestamps();
});
}
if (!Schema::hasTable('eve_mails')) {
Schema::create('eve_mails', function (Blueprint $table){
$table->increments('id');
$table->string('sender');
$table->string('recipient');
$table->string('recipient_type');
$table->text('subject');
$table->text('body');
$table->timestamps();
});
}
if(!Schema::hasTable('sent_mails')) {
Schema::create('sent_mails', function (Blueprint $table) {
$table->increments('id');
$table->string('sender');
$table->string('subject');
$table->text('body');
$table->string('recipient');
$table->string('recipient_type');
});
}
if(!Schema::hasTable('citadels')) {
Schema::create('citadels', function(Blueprint $table) {
$table->string('structure_id')->unique();
$table->string('structure_name');
$table->string('solar_system_id');
$table->string('solar_system_name')->nullable();
$table->string('type_id');
$table->string('corporation_id');
$table->boolean('services');
$table->enum('state', [
'anchor_vulnerable',
'anchoring',
'armor_reinforce',
'armor_vulnerable',
'deploy_vulnerable',
'fitting_invulnerable',
'hull_reinforce',
'hull_vulnerable',
'online_deprecated',
'onlining_vulnerable',
'shield_vulnerable',
'unanchored',
'unknown',
]);
$table->dateTime('state_timer_start')->nullable();
$table->dateTime('state_timer_end')->nullable();
$table->dateTime('fuel_expires')->nullable();
$table->string('profile_id');
$table->string('position_x');
$table->string('position_y');
$table->string('position_z');
$table->dateTime('next_reinforce_apply')->nullable();
$table->integer('next_reinforce_hour')->nullable();
$table->integer('next_reinforce_weekday')->nullable();
$table->integer('reinforce_hour');
$table->integer('reinforce_weekday')->nullable();
$table->dateTime('unanchors_at')->nullable();
$table->timestamps();
});
}
if(!Schema::hasTable('citadel_services')) {
Schema::create('citadel_services', function(Blueprint $table) {
$table->increments('id');
$table->string('structure_id');
$table->string('name');
$table->enum('state', [
'online',
'offline',
'cleanup',
]);
$table->timestamps();
});
}
if(!Schema::hasTable('assets')) {
Schema::create('assets', function(Blueprint $table) {
$table->increments('id');
$table->boolean('is_blueprint_copy')->nullable();
$table->boolean('is_singleton');
$table->string('item_id');
$table->enum('location_flag', [
'AssetSafety',
'AutoFit',
'Bonus',
'Booster',
'BoosterBay',
'Capsule',
'Cargo',
'CorpDeliveries',
'CorpSAG1',
'CorpSAG2',
'CorpSAG3',
'CorpSAG4',
'CorpSAG5',
'CorpSAG6',
'CorpSAG7',
'CrateLoot',
'Deliveries',
'DroneBay',
'DustBattle',
'DustDatabank',
'FighterBay',
'FighterTube0',
'FighterTube1',
'FighterTube2',
'FighterTube3',
'FighterTube4',
'FleetHangar',
'FrigateEscapeBay',
'Hangar',
'HangarAll',
'HiSlot0',
'HiSlot1',
'HiSlot2',
'HiSlot3',
'HiSlot4',
'HiSlot5',
'HiSlot6',
'HiSlot7',
'HiddenModifiers',
'Implant',
'Impounded',
'JunkyardReprocessed',
'JunkyardTrashed',
'LoSlot0',
'LoSlot1',
'LoSlot2',
'LoSlot3',
'LoSlot4',
'LoSlot5',
'LoSlot6',
'LoSlot7',
'Locked',
'MedSlot0',
'MedSlot1',
'MedSlot2',
'MedSlot3',
'MedSlot4',
'MedSlot5',
'MedSlot6',
'MedSlot7',
'OfficeFolder',
'Pilot',
'PlanetSurface',
'QuafeBay',
'QuantumCoreRoom',
'Reward',
'RigSlot0',
'RigSlot1',
'RigSlot2',
'RigSlot3',
'RigSlot4',
'RigSlot5',
'RigSlot6',
'RigSlot7',
'SecondaryStorage',
'ServiceSlot0',
'ServiceSlot1',
'ServiceSlot2',
'ServiceSlot3',
'ServiceSlot4',
'ServiceSlot5',
'ServiceSlot6',
'ServiceSlot7',
'ShipHangar',
'ShipOffline',
'Skill',
'SkillInTraining',
'SpecializedAmmoHold',
'SpecializedCommandCenterHold',
'SpecializedFuelBay',
'SpecializedGasHold',
'SpecializedIndustrialShipHold',
'SpecializedLargeShipHold',
'SpecializedMaterialBay',
'SpecializedMediumShipHold',
'SpecializedMineralHold',
'SpecializedOreHold',
'SpecializedPlanetaryCommoditiesHold',
'SpecializedSalvageHold',
'SpecializedShipHold',
'SpecializedSmallShipHold',
'StructureActive',
'StructureFuel',
'StructureInactive',
'StructureOffline',
'SubSystemBay',
'SubSystemSlot0',
'SubSystemSlot1',
'SubSystemSlot2',
'SubSystemSlot3',
'SubSystemSlot4',
'SubSystemSlot5',
'SubSystemSlot6',
'SubSystemSlot7',
'Unlocked',
'Wallet',
'Wardrobe',
]);
$table->string('location_id');
$table->string('location_type');
$table->integer('quantity');
$table->string('type_id');
$table->timestamps();
});
}
if(!Schema::hasTable('wormholes')) {
Schema::create('wormholes', function (Blueprint $table) {
$table->increments('id');
$table->string('system');
$table->string('sig_id');
$table->string('duration_left');
$table->dateTime('dateTime');
$table->enum('class', [
'C1',
'C2',
'C3',
'C4',
'C5',
'C6',
'C7',
'C8',
'C9',
'C13',
'Drifter',
'Thera',
'Exit WH',
]);
$table->string('type');
$table->enum('hole_size', [
'XS',
'S',
'M',
'L',
'XL',
]);
$table->enum('stability', [
'Stable',
'Non-Critical',
'Critical',
]);
$table->text('details')->nullable();
$table->string('link')->nullable();
$table->unsignedBigInteger('mass_allowed');
$table->unsignedBigInteger('individual_mass');
$table->unsignedBigInteger('regeneration');
$table->enum('stable_time', [
'>24 hours',
'>4 hours <24 hours',
'<4 hours',
]);
$table->timestamps();
});
if(!Schema::hasTable('wormhole_types')) {
Schema::create('wormhole_types', function (Blueprint $table) {
$table->increments('id');
$table->string('type');
$table->string('leads_to');
$table->unsignedBigInteger('mass_allowed');
$table->unsignedBigInteger('individual_mass');
$table->unsignedBigInteger('regeneration');
$table->unsignedBigInteger('max_stable_time');
});
}
}
if(!Schema::hasTable('corporation_wallet_journal')) {
Schema::create('corporation_wallet_journal', function (Blueprint $table) {
$table->unsignedBigInteger('id')->unique();
$table->unsignedBigInteger('corporation_id');
$table->unsignedInteger('division');
$table->decimal('amount', 20, 2)->nullable();
$table->decimal('balance', 20, 2)->nullable();
$table->unsignedBigInteger('context_id')->nullable();
$table->enum('context_id_type', [
'structure_id',
'station_id',
'market_transaction_id',
'character_id',
'corporation_id',
'alliance_id',
'eve_system',
'industry_job_id',
'contract_id',
'planet_id',
'system_id',
'type_id',
])->nullable();
$table->dateTime('date')->nullable();
$table->string('description')->nullable();
$table->unsignedBigInteger('first_party_id')->nulalble();
$table->string('reason')->nullable();
$table->enum('ref_type', [
'acceleration_gate_fee',
'advertisement_listing_fee',
'agent_donation',
'agent_location_services',
'agent_miscellaneous',
'agent_mission_collateral_paid',
'agent_mission_collateral_refunded',
'agent_mission_reward',
'agent_mission_reward_corporation_tax',
'agent_mission_time_bonus_reward',
'agent_mission_time_bonus_reward_corporation_tax',
'agent_security_services',
'agent_services_rendered',
'agents_preward',
'alliance_maintainance_fee',
'alliance_registration_fee',
'asset_safety_recovery_tax',
'bounty',
'bounty_prize',
'bounty_prize_corporation_tax',
'bounty_prizes',
'bounty_reimbursement',
'bounty_surcharge',
'brokers_fee',
'clone_activation',
'clone_transfer',
'contraband_fine',
'contract_auction_bid',
'contract_auction_bid_corp',
'contract_auction_bid_refund',
'contract_auction_sold',
'contract_brokers_fee',
'contract_brokers_fee_corp',
'contract_collateral',
'contract_collateral_deposited_corp',
'contract_collateral_payout',
'contract_collateral_refund',
'contract_deposit',
'contract_deposit_corp',
'contract_deposit_refund',
'contract_deposit_sales_tax',
'contract_price',
'contract_price_payment_corp',
'contract_reversal',
'contract_reward',
'contract_reward_deposited',
'contract_reward_deposited_corp',
'contract_reward_refund',
'contract_sales_tax',
'copying',
'corporate_reward_payout',
'corporate_reward_tax',
'corporation_account_withdrawal',
'corporation_bulk_payment',
'corporation_dividend_payment',
'corporation_liquidation',
'corporation_logo_change_cost',
'corporation_payment',
'corporation_registration_fee',
'courier_mission_escrow',
'cspa',
'cspaofflinerefund',
'datacore_fee',
'dna_modification_fee',
'docking_fee',
'duel_wager_escrow',
'duel_wager_payment',
'duel_wager_refund',
'ess_escrow_transfer',
'factory_slot_rental_fee',
'gm_cash_transfer',
'industry_job_tax',
'infrastructure_hub_maintenance',
'inheritance',
'insurance',
'item_trader_payment',
'jump_clone_activation_fee',
'jump_clone_installation_fee',
'kill_right_fee',
'lp_store',
'manufacturing',
'market_escrow',
'market_fine_paid',
'market_transaction',
'medal_creation',
'medal_issued',
'mission_completion',
'mission_cost',
'mission_expiration',
'mission_reward',
'office_rental_fee',
'operation_bonus',
'opportunity_reward',
'planetary_construction',
'planetary_export_tax',
'planetary_import_tax',
'player_donation',
'player_trading',
'project_discovery_reward',
'project_discovery_tax',
'reaction',
'release_of_impounded_property',
'repair_bill',
'reprocessing_tax',
'researching_material_productivity',
'researching_technology',
'researching_time_productivity',
'resource_wars_reward',
'reverse_engineering',
'security_processing_fee',
'shares',
'skill_purchase',
'sovereignity_bill',
'store_purchase',
'store_purchase_refund',
'structure_gate_jump',
'transaction_tax',
'upkeep_adjustment_fee',
'war_ally_contract',
'war_fee',
'war_fee_surrender',
]);
$table->unsignedBigInteger('second_party_id')->nullable();
$table->decimal('tax', 20, 2)->default(0.00);
$table->unsignedBigInteger('tax_receiver_id')->nullable();
$table->timestamps();
});
}
if(!Schema::hasTable('character_assets')) {
Schema::create('character_assets', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('character_id');
$table->boolean('is_blueprint_copy');
$table->boolean('is_singleton');
$table->unsignedBigInteger('item_id');
$table->enum('location_flag', [
'AssetSafety',
'AutoFit',
'BoosterBay',
'CapsuleerDeliveries',
'Cargo',
'CorporationGoalDeliveries',
'CorpseBay',
'Deliveries',
'Dronebay',
'ExpeditionHold',
'FighterBay',
'FighterTube0',
'FighterTube1',
'FighterTube2',
'FighterTube3',
'FighterTube4',
'FleetHangar',
'FrigateEscapeBay',
'Hangar',
'HangarAll',
'HiSlot0',
'HiSlot1',
'HiSlot2',
'HiSlot3',
'HiSlot4',
'HiSlot5',
'HiSlot6',
'HiSlot7',
'HiSlot8',
'HiddenModifiers',
'Implant',
'InfrastructureHangar',
'LoSlot0',
'LoSlot1',
'LoSlot2',
'LoSlot3',
'LoSlot4',
'LoSlot5',
'LoSlot6',
'LoSlot7',
'Locked',
'MedSlot0',
'MedSlot1',
'MedSlot2',
'MedSlot3',
'MedSlot4',
'MedSlot5',
'MedSlot6',
'MedSlot7',
'MobileDepotHold',
'MoonMaterialBay',
'QuafeBay',
'RigSlot0',
'RigSlot1',
'RigSlot2',
'RigSlot3',
'RigSlot4',
'RigSlot5',
'RigSlot6',
'RigSlot7',
'SpecializedCommandCenterHold',
'SpecializedFuelBay',
'SpecializedGasHold',
'SpecializedIceHold',
'SpecializedIndustrialShipHold',
'SpecializedLargeShipHold',
'SpecializedMaterialBay',
'SpecializedMediumShipHold',
'SpecializedMineralHold',
'SpecializedOreHold',
'SpecializedPlanetaryCommoditiesHold',
'SpecializedSalvageHold',
'SpecializedShipHold',
'StructureDeedBay',
'SubSystemBay',
'SubSystemSlot0',
'SubSystemSlot1',
'SubSystemSlot2',
'SubSystemSlot3',
'SubSystemSlot4',
'SubSystemSlot5',
'SubSystemSlot6',
'SubSystemSlot7',
'Unlocked',
'Wardrobe',
]);
$table->unsignedBigInteger('location_id');
$table->enum('location_type', [
'station',
'solar_system',
'item',
'other',
]);
$table->unsignedBigInteger('quantity');
$table->unsignedBigInteger('type_id');
$table->timestamps();
});
}
if(!Schema::hasTable('corporation_assets')) {
Schema::create('corporation_assets', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('corporation_id');
$table->boolean('is_blueprint_copy');
$table->boolean('is_singleton');
$table->unsignedBigInteger('item_id');
$table->enum('location_flag', [
'AssetSafety',
'AutoFit',
'BoosterBay',
'CapsuleerDeliveries',
'Cargo',
'CorporationGoalDeliveries',
'CorpseBay',
'Deliveries',
'Dronebay',
'ExpeditionHold',
'FighterBay',
'FighterTube0',
'FighterTube1',
'FighterTube2',
'FighterTube3',
'FighterTube4',
'FleetHangar',
'FrigateEscapeBay',
'Hangar',
'HangarAll',
'HiSlot0',
'HiSlot1',
'HiSlot2',
'HiSlot3',
'HiSlot4',
'HiSlot5',
'HiSlot6',
'HiSlot7',
'HiSlot8',
'HiddenModifiers',
'Implant',
'InfrastructureHangar',
'LoSlot0',
'LoSlot1',
'LoSlot2',
'LoSlot3',
'LoSlot4',
'LoSlot5',
'LoSlot6',
'LoSlot7',
'Locked',
'MedSlot0',
'MedSlot1',
'MedSlot2',
'MedSlot3',
'MedSlot4',
'MedSlot5',
'MedSlot6',
'MedSlot7',
'MobileDepotHold',
'MoonMaterialBay',
'QuafeBay',
'RigSlot0',
'RigSlot1',
'RigSlot2',
'RigSlot3',
'RigSlot4',
'RigSlot5',
'RigSlot6',
'RigSlot7',
'SpecializedCommandCenterHold',
'SpecializedFuelBay',
'SpecializedGasHold',
'SpecializedIceHold',
'SpecializedIndustrialShipHold',
'SpecializedLargeShipHold',
'SpecializedMaterialBay',
'SpecializedMediumShipHold',
'SpecializedMineralHold',
'SpecializedOreHold',
'SpecializedPlanetaryCommoditiesHold',
'SpecializedSalvageHold',
'SpecializedShipHold',
'StructureDeedBay',
'SubSystemBay',
'SubSystemSlot0',
'SubSystemSlot1',
'SubSystemSlot2',
'SubSystemSlot3',
'SubSystemSlot4',
'SubSystemSlot5',
'SubSystemSlot6',
'SubSystemSlot7',
'Unlocked',
'Wardrobe',
]);
$table->unsignedBigInteger('location_id');
$table->enum('location_type', [
'station',
'solar_system',
'item',
'other',
]);
$table->unsignedBigInteger('quantity');
$table->unsignedBigInteger('type_id');
$table->timestamps();
});
}
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('eve_mails');
Schema::dropIfExists('sent_mail');
Schema::dropIfExists('citadels');
Schema::dropIfExists('citadel_services');
Schema::dropIfExists('assets');
Schema::dropIfExists('wormholes');
Schema::dropIfExists('wormhole_types');
Schema::dropIfExists('corporation_wallet_journal');
Schema::dropIfExists('character_wallet_journal');
Schema::dropIfExists('Config');
}
};