feat: implemented service/transport/main layers

This commit is contained in:
Anatoly Antonov 2025-06-21 22:06:32 +03:00
parent 5158c5d7c9
commit bcb9ace54c
29 changed files with 804 additions and 393 deletions

View file

@ -14,7 +14,7 @@ paths:
name: parameters
required: false
schema:
$ref: '#/components/schemas/Prediction/Parameters'
$ref: '#/components/schemas/PredictionParameters'
style: form
explode: true
requestBody:
@ -22,14 +22,14 @@ paths:
content:
application/json:
schema:
$ref: '#/components/schemas/Prediction/Parameters'
$ref: '#/components/schemas/PredictionParameters'
responses:
"200":
description: "Prediction response"
content:
application/json:
schema:
$ref: '#/components/schemas/Prediction/Result'
$ref: '#/components/schemas/PredictionResult'
default:
description: Error
content:
@ -48,82 +48,81 @@ components:
type: string
details:
type: string
Prediction:
Parameters:
type: object
properties:
launch_latitude: # TODO: altitude not required with fallback to https://github.com/priyeshpatel/ruaumoko Go analog
type: number
launch_longitude:
type: number
launch_datetime:
type: string
format: date-time
launch_altitude:
type: number
profile:
type: string
enum: ["standard_profile", "float_profile", "reverse_profile", "custom_profile"]
ascent_rate:
type: number
burst_altitude:
type: number
descent_rate:
type: number
float_altitude:
type: number
stop_datetime:
type: string
format: date-time
ascent_curve:
type: string
description: "Base64 encoded ascent curve"
descent_curve:
type: string
description: "Base64 encoded descent curve"
interpolate:
type: boolean
default: false
format: # TODO: custom output format (csv, kml) with json as default
type: string
enum: ["json"]
default: json
dataset:
type: string
format: date-time
Result: #
type: object
required:
- metadata
- prediction
properties:
metadata:
PredictionParameters:
type: object
properties:
launch_latitude: # TODO: altitude not required with fallback to https://github.com/priyeshpatel/ruaumoko Go analog
type: number
launch_longitude:
type: number
launch_datetime:
type: string
format: date-time
launch_altitude:
type: number
profile:
type: string
enum: ["standard_profile", "float_profile", "reverse_profile", "custom_profile"]
ascent_rate:
type: number
burst_altitude:
type: number
descent_rate:
type: number
float_altitude:
type: number
stop_datetime:
type: string
format: date-time
ascent_curve:
type: string
description: "Base64 encoded ascent curve"
descent_curve:
type: string
description: "Base64 encoded descent curve"
interpolate:
type: boolean
default: false
format: # TODO: custom output format (csv, kml) with json as default
type: string
enum: ["json"]
default: json
dataset:
type: string
format: date-time
PredictionResult:
type: object
required:
- metadata
- prediction
properties:
metadata:
type: object
required:
- complete_datetime
- start_datetime
properties:
complete_datetime:
type: string
format: date-time
start_datetime:
type: string
format: date-time
prediction:
type: array
items:
type: object
required:
- complete_datetime
- start_datetime
- stage
- trajectory
properties:
complete_datetime:
stage:
type: string
format: date-time
start_datetime:
type: string
format: date-time
prediction:
type: array
items:
type: object
required:
- stage
- trajectory
properties:
stage:
type: string
enum: ["ascent", "descent"]
trajectory:
type: array
items:
type: object
required:
- datetime
- latitude
enum: ["ascent", "descent"]
trajectory:
type: array
items:
type: object
required:
- datetime
- latitude