railsformers/reservatic

该包最新版本(dev-main)没有提供许可证信息。

Reservatic API

dev-main 2024-09-25 07:31 UTC

This package is auto-updated.

Last update: 2024-09-25 07:59:45 UTC


README

此包提供用于与Reservatic API一起工作的PHP客户端。

要求

  • PHP版本8.3或更高
  • PHP的cURL扩展
  • PHP的JSON扩展

安装

使用Composer安装此包

composer require railsformers/reservatic

使用

以下是一个使用示例

<?php

require 'vendor/autoload.php';

use Reservatic\Api;

// Vytvoření instance Reservatic
$reservatic = Api::reservatic('https://api.reservatic.com/api/vase_api', 'your_api_token', 'path/to/certificate.p12', 'certificate_password');

功能

getCountries()

获取国家列表。

返回值

  • string:包含国家列表的JSON字符串。

示例

[
    {
        "id": 1,
        "name": "Česká republika",
        "iso_code": "CZ",
        "locale": "cs"
    }
]

getInsuranceCompanies()

获取保险公司列表。

返回值

  • string:包含保险公司列表的JSON字符串。

示例

[
    {
        "id": 1,
        "name": "Neregistrován u zdravotní pojišťovny v ČR",
        "shortcut": "Jiná",
        "code": 999
    }
]

getPhoneCodes()

获取电话号码列表。

返回值

  • string:包含电话号码列表的JSON字符串。

示例

[
    {
        "id": 1,
        "name": "Czech Republic",
        "position": 1,
        "value": "+420"
    }
]

getServices(int $page = null, int $per_page = null, string $q = '', string $name_cont = '')

获取服务列表。

参数

  • int $page:(可选)页面编号。
  • int $per_page:(可选)每页的项目数。
  • string $q:(可选)搜索词。
  • string $name_cont:(可选)名称中的搜索词。

返回值

  • string:包含服务列表的JSON字符串。

示例

[
    {
        "id": 1,
        "name": "Super service",
        "aliases": "string",
        "address": "Malostranské náměstí 1, Praha, 10000, Česká republika",
        "phone_code": "+420",
        "phone": "777888999",
        "phone_code2": "+420",
        "phone2": "777888999",
        "logo": "https://example.com/image.png",
        "ic": "12345678",
        "dic": "12345678",
        "icp": "Abc",
        "url": "https://example.com/super-service",
        "url_iframe": "https://example.com/super-service-iframe",
        "place_ids": [1, 2],
        "lat": "49.000",
        "lng": "21.000",
        "required_gdpr": true,
        "gdpr_content": "I aggree with GDPR consent",
        "external_identifier": "XA123"
    }
]

getService(int $id)

根据ID获取服务详情。

参数

  • int $id:服务ID。

返回值

  • string:包含服务详情的JSON字符串。

示例

{
    "id": 1,
    "name": "Super service",
    "aliases": "string",
    "address": "Malostranské náměstí 1, Praha, 10000, Česká republika",
    "phone_code": "+420",
    "phone": "777888999",
    "phone_code2": "+420",
    "phone2": "777888999",
    "logo": "https://example.com/image.png",
    "ic": "12345678",
    "dic": "12345678",
    "icp": "Abc",
    "url": "https://example.com/super-service",
    "url_iframe": "https://example.com/super-service-iframe",
    "place_ids": [1, 2],
    "lat": "49.000",
    "lng": "21.000",
    "required_gdpr": true,
    "gdpr_content": "I aggree with GDPR consent",
    "external_identifier": "XA123",
    "location": {
        "street": "Vřesinská 2371",
        "city": "Ostrava",
        "zip": "70800",
        "lat": 0,
        "lng": 0,
        "country_id": 1
    },
    "service_openings": [
        {
            "day": 0,
            "all_day": false,
            "closed": false,
            "no_break": false,
            "reserved_only": false,
            "time_from": "08:00",
            "time_to": "18:00",
            "break_from": "12:00",
            "break_to": "13:00"
        }
    ],
    "gopay_iframe_url": "https://example.com/payments"
}

getOperations(int $service_id, int $page = null, int $per_page = null)

获取特定服务的操作列表。

参数

  • int $service_id:服务ID。
  • int $page:(可选)页面编号。
  • int $per_page:(可选)每页的项目数。

返回值

  • string:包含操作列表的JSON字符串。

示例

[
    {
        "id": 1,
        "name": "Super operation",
        "required_fields": ["phone", "birth_cert_no", "holder_id", "date_of_birth", "address", "insurance_company", "spz"],
        "minutes": 15,
        "real_minutes": 20,
        "content": "Amazing operation",
        "has_jitsi": false,
        "anonymous_without_email": true,
        "operation_columns": [
            {
                "name": "Own Column",
                "is_required": false,
                "column_type": "options",
                "options": ["1", "2", "other"]
            }
        ],
        "create_min": 24,
        "delete_min": 24,
        "create_max": 2,
        "create_max_interval_type": "day",
        "price_without_vat": 100,
        "price_with_vat": 100,
        "price_with_vat_label": "100 Kč s DPH",
        "pay_methods": ["cash", "card", "card_in_place"],
        "currency": "czk",
        "who_pays": "free",
        "external_identifier": "XA123"
    }
]

getHolidays(int $service_id, string $from, string $to, int $user_service_id = null, int $page = null, int $per_page = null)

获取特定服务的假日列表。

参数

  • int $service_id:服务ID。
  • string $from:起始日期(YYYY-MM-DD)。
  • string $to:结束日期(YYYY-MM-DD)。
  • int $user_service_id:(可选)用户服务ID。
  • int $page:(可选)页面编号。
  • int $per_page:(可选)每页的项目数。

返回值

  • string:包含假日列表的JSON字符串。

示例

[
    {
        "id": 1,
        "date": "2023-12-25",
        "description": "Christmas"
    },
    {
        "id": 2,
        "date": "2023-01-01",
        "description": "New Year"
    }
]

getServiceYears(int $service_id, int $operation_id, int $place_id = null, int $user_service_id = null)

获取特定服务和操作的年份。

参数

  • int $service_id:服务ID。
  • int $operation_id:操作ID。
  • int $place_id:(可选)地点ID。
  • int $user_service_id:(可选)用户服务ID。

返回值

  • string:包含年份列表的JSON字符串。

示例

[
    {
        "year": 2023
    },
    {
        "year": 2024
    }
]

getServiceMonths(int $service_id, int $operation_id, int $year, int $place_id = null, int $user_service_id = null)

获取特定服务、操作和年份的月份。

参数

  • int $service_id:服务ID。
  • int $operation_id:操作ID。
  • int $year:年份。
  • int $place_id:(可选)地点ID。
  • int $user_service_id:(可选)用户服务ID。

返回值

  • string:包含月份列表的JSON字符串。

示例

[
    {
        "month": 1
    },
    {
        "month": 2
    }
]

getServiceDays(int $service_id, int $operation_id, int $year, int $month, int $place_id = null, int $user_service_id = null)

获取特定服务、操作、年份和月份的天。

参数

  • int $service_id:服务ID。
  • int $operation_id:操作ID。
  • int $year:年份。
  • int $month:月份。
  • int $place_id:(可选)地点ID。
  • int $user_service_id:(可选)用户服务ID。

返回值

  • string:包含天列表的JSON字符串。

示例

[
    {
        "day": 1
    },
    {
        "day": 2
    }
]

getServiceHours(int $service_id, int $operation_id, string $day, int $place_id = null, int $user_service_id = null)

获取特定服务、操作和日期的小时。

参数

  • int $service_id:服务ID。
  • int $operation_id:操作ID。
  • string $day:日期(YYYY-MM-DD)。
  • int $place_id:(可选)地点ID。
  • int $user_service_id:(可选)用户服务ID。

返回值

  • string:包含小时列表的JSON字符串。

示例

[
    {
        "label": "17:00 - 20:00",
        "free_people": 1,
        "starts_at": "2024-09-12T12:25:12+02:00",
        "place_id": 1,
        "user_service_id": 1
    }
]

getPlaces(int $service_id, int $operation_id = null, int $page = null, int $per_page = null)

获取特定服务和操作的地点列表。

参数

  • int $service_id:服务ID。
  • int $operation_id:(可选)操作ID。
  • int $page:(可选)页面编号。
  • int $per_page:(可选)每页的项目数。

返回值

  • string:包含地点列表的JSON字符串。

示例

[
    {
        "id": 1,
        "name": "Super kalendář",
        "service_id": 1,
        "subtext": "Text",
        "operation_ids": [1, 2],
        "external_identifier": "XA123"
    }
]

getReservations(string $from, string $to, string $status = 'kept', int $operation_id = null, int $place_id = null, int $user_service_id = null, int $user_id = null, int $external_app_id = null, string $order_by = 'starts_at', string $order_direction = 'asc', int $page = null, int $per_page = null)

获取预订列表。

参数

  • string $from:起始日期(YYYY-MM-DD)。
  • string $to:结束日期(YYYY-MM-DD)。
  • string $status: (可选) 预订状态(默认:'kept')。
  • int $operation_id:(可选)操作ID。
  • int $place_id:(可选)地点ID。
  • int $user_service_id:(可选)用户服务ID。
  • int $user_id: (可选) 用户ID。
  • int $external_app_id: (可选) 外部应用ID。
  • string $order_by: (可选) 排序依据(默认:'starts_at')。
  • string $order_direction: (可选) 排序方向(默认:'asc')。
  • int $page:(可选)页面编号。
  • int $per_page:(可选)每页的项目数。

返回值

  • string: 包含预订列表的JSON字符串。

示例

[
    {
        "id": 1,
        "operation_id": 2,
        "service_id": 3,
        "calendar_id": 1,
        "user_service_id": 3,
        "people": 1,
        "paid": true,
        "pay_by": "cash",
        "price": "850.0",
        "price_with_vat": 900,
        "currency": "euro",
        "operation_name": "Očkování V1",
        "operation_content": "Očkování description.",
        "operation_price": "850 euro",
        "operation_who_pays": "customer",
        "jitsi_token": "ffdc64f07e68e3647685",
        "jitsi_active": false,
        "jitsi_room_name": "Videokonference",
        "jitsi_domain": "meet.reservatic.com",
        "gopay_url": "https://gw.sandbox.gopay.com/gw/v3/token",
        "email": "john@doe.cz",
        "first_name": "John",
        "last_name": "Doe",
        "locale": "cs",
        "holder_id": "123456789",
        "phone": "777888999",
        "phone_code": "+420",
        "spz": "",
        "birth_certificate_number": "string",
        "street": "Nerudova 13",
        "city": "Praha",
        "zip": "10000",
        "country_code_alpha2": "CZ",
        "self_paying": false,
        "insurance_company_id": 1,
        "children": [
            {
                "id": 1,
                "first_name": "John",
                "last_name": "Doe",
                "date_of_birth": "2010-01-01",
                "date_of_birth_iso": "2010-01-01",
                "holder_id": 0
            }
        ],
        "reservation_columns": [
            {
                "name": "Ročník",
                "column_type": "string",
                "value": "1991",
                "values": "Red,Green,Blue"
            }
        ],
        "can_change": false,
        "can_cancel": false,
        "starts_at": "2024-09-12T12:25:12+02:00",
        "ends_at": "2024-09-12T12:40:12+02:00",
        "deleted_at": "2024-09-13T07:51:56.372Z",
        "created_at": "2024-09-12T12:25:12+02:00",
        "updated_at": "2024-09-12T12:25:12+02:00",
        "date_of_birth": "1945-01-01",
        "max_delete_at": "2024-09-13T12:25:12+02:00",
        "external_app_id": "2a4a5f29-a74b-486e-b4b9-0d6a4254bd77",
        "arrived": false,
        "pin": "1234"
    }
]

getServiceClients(int $service_id, string $q = '', string $user_first_name_cont = '', string $user_last_name_cont = '', string $user_email_cont = '', int $page = null, int $per_page = null)

获取指定服务的客户列表。

参数

  • int $service_id:服务ID。
  • string $q:(可选)搜索词。
  • string $user_first_name_cont: (可选) 在名字中搜索的词。
  • string $user_last_name_cont: (可选) 在姓氏中搜索的词。
  • string $user_email_cont: (可选) 在电子邮件中搜索的词。
  • int $page:(可选)页面编号。
  • int $per_page:(可选)每页的项目数。

返回值

  • string: 包含客户列表的JSON字符串。

示例.

```json
[
    {
        "id": 1,
        "imported": false,
        "offline": false,
        "superclient": false,
        "blocked": false,
        "desc": false,
        "user": {
            "id": 1,
            "email": "john@doe.com",
            "first_name": "John",
            "last_name": "Doe",
            "title_front": "Mgr",
            "title_back": "Dis",
            "insurance_company_id": 1,
            "date_of_birth": "1980-01-01",
            "holder_id": "string",
            "phone": "777888999",
            "phone_code": "420",
            "locale": "cs",
            "no_emails": false,
            "avatar_url": "https://example.com/avatar.png"
        }
    }
]

postHoliday(array $data)

创建新的假日。

参数

  • array $data: 创建假日的数据。

返回值

  • string: 包含API响应的JSON字符串。

示例

{
    "id": 1,
    "date": "2023-12-25",
    "description": "Christmas"
}

deleteHoliday(int $service_id, int $holiday_id)

根据ID删除假日。

参数

  • int $service_id:服务ID。
  • int $holiday_id: 假日ID。

返回值

  • string: 包含API响应的JSON字符串。

示例

{
    "message": "Holiday deleted successfully"
}

deleteReservation(int $id)

根据ID删除预订。

参数

  • int $id: 预订ID。

返回值

  • string: 包含API响应的JSON字符串。

示例

{
    "message": "Reservation deleted successfully"
}

updateReservationTime(int $id, string $time)

更新预订时间。

参数

  • int $id: 预订ID。
  • string $time: 新的预订时间(YYYY-MM-DDTHH:MM:SSZ)。

返回值

  • string: 包含API响应的JSON字符串。

示例

{
    "id": 1,
    "starts_at": "2023-12-25T10:00:00Z"
}

联系

如果您有任何疑问或问题,可以联系我 [podpora@reservatic.com].