# from flask_restx import fields
# from . import api
import os


__all__ = [
    os.path.splitext(os.path.basename(x))[0]
    for x in os.listdir(os.path.dirname(__file__))
    if x.endswith(".py") and x != "__init__.py"
]

# TODO: Define units for all schemas

# message_types = [
#     "platform_status",
#     "mission_plan_ecosub",
#     "mission_plan_reav",
#     "mission_plan_autosub",
# ]  # TODO: Add full range of message types once scoped out

# full_message_schema = api.model(
#     "FullMessageSchema",
#     {
#         "message_ID": fields.String(
#             required=True,
#             description="UUID assigned to this message",
#             example="b427003c-7bc8-11ed-a1eb-0242ac120002",
#         ),
#         "timestamp": fields.DateTime(
#             required=True,
#             description="Timestamp of message",
#             example="2022-11-16T00:00:00Z",
#         ),
#         "version": fields.Float(
#             required=True,
#             description="Version of comms bacbone messaging format protocol",
#             example=2.0,
#         ),
#         "source": fields.String(
#             required=True,
#             description="Where is this message from",
#             example="autonomy_engine",
#         ),
#         "destination": fields.String(
#             required=True,
#             description="What is the destination of this message",
#             example="ah-1",
#         ),
#         "encoded": fields.Boolean(
#             required=True,
#             description="Indicate that message raw (encoded) or decoded. "
#             + "Options: encoded=True, decoded=False",
#             example=False,
#         ),
#         "type": fields.String(
#             required=True,
#             description="Type of message",
#             example="platform_status",
#         ),
#         "payload": fields.Raw(
#             required=True,
#             description="Content of Message",
#             # example="{}",
#         ),
#     },
# )

# constraints_schema = api.model(
#     "ConstraintsSchema",
#     {
#         "min_altitude": fields.Float(
#             required=True,
#             description="Minimum altitude set for squad.",
#             example=15.2,
#         ),
#         "min_velocity": fields.Float(
#             required=True,
#             description="Minimum velocity set for squad.",
#             example=0.1,
#         ),
#         "max_velocity": fields.Float(
#             required=True,
#             description="Maximum altitude set for squad.",
#             example=0.9,
#         ),
#     },
# )

# platform_schema = api.model(
#     "PlatformSchema",
#     {
#         "platform_ID": fields.Integer(
#             required=True,
#             description="unique identifier for platform",
#             example=1,
#         ),
#         "serial": fields.String(
#             required=True,
#             description="platform serial number",
#             example="reav-60",
#         ),
#         "model": fields.String(
#             required=True,
#             description="platform serial number",
#             example="reav",
#         ),
#         "constraints": fields.Nested(constraints_schema),
#     },
# )