{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "file.schema.json",
    "title": "File",
    "type": "object",
    "description": "Метаданные файла документа в системе",
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "description": "Идентификатор файла"
        },
        "template": {
            "description": "Шаблон по которому сгенерирован файл",
             "$ref": "template.schema.json"
        },
        "type" : {
            "enum": [
                "CONTRACT",
                "INVOICE",
                "AGREEMENT",
                "ORDER",
                "REPORT",
                "OTHER",
                "CONFIRMATION",
                "INSTRUCTION",
                "ADDITIONAL_AGREEMENT",
                "ANOTHER",
                "TO_SEND_SUBAGENT",
                "DISAGREEMENT_PROTOCOL"
            ],
            "description": "Вид документа. \n\n  - `CONTRACT` Контракт / инвойс \n - `INVOICE`: Инвойс \n - `ORDER`: Заявка \n - `REPORT` - `Отчёт` \n - `AGREEMENT` - Договор\n - `OTHER` - Прочие документы\n - `CONFIRMATION` - Подтверждающие документы\n - `INSTRUCTION` - Поручение\n - `ADDITIONAL_AGREEMENT` - Доп.соглашение,  'ANOTHER'  - Другое,  'TO_SEND_SUBAGENT'  - к отправке субагенту, 'DISAGREEMENT_PROTOCOL' - Протокол разногласий"
        },
        "name": {
            "type": "string",
            "description": "Отображаемое название файла"
        },
        "path": {
            "type": "string",
            "description": "Путь к файлу в хранилище объектов"
        },
        "context": {
            "type": "string",
            "description": "Данные, которые использовались для генерации файла"
        },
        "status": {
            "enum": [
                "ACTIVE",
                "DELETED"
            ],
            "description": "Статус"
        },
        "document": {
            "$ref" : "document.schema.json",
            "description": "Ссылка на документ"
        },
        "isGenerated": {
            "type": "boolean",
            "description": "Признак генерации файла системой"
        },
        "signature": {
            "type": "array",
            "description": "Платежные поручения",
            "items": {
                "type": "object",
                "properties": {
                    "operationId": {
                        "type": "string",
                        "description": "Номер операции"
                    },
                    "signingType": {
                        "enum": [
                            "SIMPLE_ELECTRONIC",
                            "HANDWRITTEN"
                        ],
                        "description": "Способ подписания документов \n\n - `HANDWRITTEN`: подписание вручную \n - `SIMPLE_ELECTRONIC`: ПЭП "
                    },
                    "user": {
                        "$ref": "user.schema.json"
                    },
                    "userRole": {
                        "$ref": "common/_common.schema.json#/userRole"
                    },
                    "signedAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "Дата и время подписания документы"
                    },
                    "smsCode": {
                        "type": "string",
                        "description": "Код из СМС которым"
                    },
                    "phone": {
                        "type": "string",
                        "description": "Номер телефона на который отправили СМС"
                    },
                    "inn": {
                        "type": "string",
                        "description": "ИНН"
                    },
                    "kpp": {
                        "type": "string",
                        "description": "КПП"
                    },
                    "name": {
                        "type": "string",
                        "description": "Наименование"
                    },
                    "fio": {
                        "$ref": "common/_common.schema.json#/fio",
                        "description": "ФИО подписавшего"
                    }
                },
                "required": [
                    "signingType",
                    "user",
                    "userRole",
                    "signedAt",
                    "fio"
                ]
            }
        }
    },
    "additionalProperties": false,
    "required": [
        "document",
        "name",
        "status",
        "isGenerated",
        "type",
        "path"
    ]
}
