Files
Oleksandr Bezdieniezhnykh 7025f4d075 refactor: enhance JWT authentication and CORS configuration
Updated JWT authentication to use configuration values instead of hardcoded secrets, improving security and flexibility. Enhanced CORS policy to conditionally allow origins based on configuration settings, with logging for permissive defaults. Updated README to reflect project renaming and clarify service context.
2026-05-14 19:48:25 +03:00

2.6 KiB

Module: Azaion.Missions.Enums

Files (5): Enums/VehicleType.cs, Enums/FuelType.cs, Enums/WaypointSource.cs, Enums/WaypointObjective.cs, Enums/ObjectStatus.cs

NOTE (forward-looking): post-rename + post-multi-vehicle-support state. Today's source has Enums/AircraftType.cs with Plane = 0, Copter = 1. The expanded VehicleType is tracked under Jira AZ-EPIC child B6.

Purpose

Domain enumerations used by entities and DTOs. All values are stored in PostgreSQL as INTEGER NOT NULL DEFAULT 0 (per DatabaseMigrator).

Public Interface

Enum Members (value)
VehicleType Plane = 0, Copter = 1, UGV = 2, GuidedMissile = 3
FuelType Electric = 0, Gasoline = 1, Diesel = 2
WaypointSource Auto = 0, Manual = 1
WaypointObjective Surveillance = 0, Strike = 1, Recon = 2
ObjectStatus New = 0, Moved = 1, Removed = 2

Internal Logic

None -- pure value lists. No [Flags], no custom backing storage.

Dependencies

None (no using of internal namespaces).

Consumers

  • Database.Entities.Vehicle -- VehicleType, FuelType
  • Database.Entities.Waypoint -- WaypointSource, WaypointObjective
  • Database.Entities.MapObject -- ObjectStatus
  • DTOs.CreateVehicleRequest, DTOs.UpdateVehicleRequest -- VehicleType, FuelType
  • DTOs.CreateWaypointRequest, DTOs.UpdateWaypointRequest -- WaypointSource, WaypointObjective
  • Services.WaypointService -- using for symbol resolution; runtime use is via DTO/entity properties

Data Models

The enums themselves; persisted as INTEGER columns (see Database/DatabaseMigrator.cs).

Configuration / External Integrations / Security

None.

Tests

None present.

Notes / Smells

  • VehicleType covers UAV (Plane / Copter), UGV, and GuidedMissile -- aligns with the broader fleet described in ../../../hardware/_standalone/target_acquisition/target_acquisition.md. The previous AircraftType name was too narrow and excluded ground / loitering-munition vehicles.
  • FuelType may not fit GuidedMissile -- a single-use missile has no battery/engine-consumption profile in the same sense. Carry forward as Phase C decision (Jira open: do we add None / make FuelType nullable?).
  • The WaypointObjective set (Surveillance, Strike, Recon) covers the mission-level intent for any vehicle class.
  • Integer-based persistence is positional; reordering or removing a member would silently corrupt existing rows. Adding new members at the end (UGV = 2, GuidedMissile = 3) is safe -- existing rows keep Type = 0/1.