from app.schema_validation.definitions import uuid

get_inbound_sms_request = {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "description": "schema for query parameters allowed when getting list of received text messages",
    "type": "object",
    "properties": {
        "older_than": uuid,
    },
    "additionalProperties": False,
}


get_inbound_sms_single_response = {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "description": "GET inbound sms schema response",
    "type": "object",
    "title": "GET response v2/inbound_sms",
    "properties": {
        "user_number": {"type": "string"},
        "created_at": {"format": "date-time", "type": "string", "description": "Date+time created at"},
        "service_id": uuid,
        "id": uuid,
        "notify_number": {"type": "string"},
        "content": {"type": "string"},
    },
    "required": ["id", "user_number", "created_at", "service_id", "notify_number", "content"],
    "additionalProperties": False,
}

get_inbound_sms_response = {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "description": "GET list of inbound sms response schema",
    "type": "object",
    "properties": {
        "received_text_messages": {"type": "array", "items": {"type": "object", "$ref": "#/definitions/inbound_sms"}},
        "links": {
            "type": "object",
            "properties": {"current": {"type": "string"}, "next": {"type": "string"}},
            "additionalProperties": False,
            "required": ["current"],
        },
    },
    "required": ["received_text_messages", "links"],
    "definitions": {"inbound_sms": get_inbound_sms_single_response},
    "additionalProperties": False,
}
