<?php

namespace App\PackagesApi\Docs\v2;

class InvitationApiDoc extends AbstractV1Doc
{

    public static function endPoints()
    {
        return [
            'title' => 'Invitations',
            'endpoints' => [

                // Get invitations
                [
                    'title' => 'Get invitations list',
                    'desc' => 'Get user invitations list',

                    'route' => route('invites.list'),
                    'method' => 'GET',
                    'headers' => self::middlewareHeaders(),
                    'body' => '',

                    'response' => [
                        200 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => true,
                                'invites' => [
                                    [
                                        'invite_id' => "323",
                                        'friend' => [
                                            'id' => "ac84fda7-f30d-4a9d-92cf-bc16c6a65d5e",
                                            'name' => "Тимур80",
                                            'image_url' => "https://api.timehook.local/samples/avatar/9.png"
                                        ]
                                    ]
                                ]
                            ],
                        ]
                    ],
                ],

                [
                    'title' => 'Get sent invitations list',
                    'desc' => 'Get sent invitations list',

                    'route' => route('invites.sent-list'),
                    'method' => 'GET',
                    'headers' => self::middlewareHeaders(),
                    'body' => '',

                    'response' => [
                        200 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => true,
                                'invites' => [
                                    [
                                        'invite_id' => "323",
                                        'friend' => [
                                            'id' => "ac84fda7-f30d-4a9d-92cf-bc16c6a65d5e",
                                            'name' => "Тимур80",
                                            'image_url' => "https://api.timehook.local/samples/avatar/9.png"
                                        ]
                                    ]
                                ]
                            ],
                        ]
                    ],
                ],

                [
                    'title' => 'Get User ID by phone number',
                    'desc' => '',

                    'route' => route('invites.user-by-phone'),
                    'method' => 'POST',
                    'headers' => self::middlewareHeaders(),
                    'body' => [
                        'phone_full' => [
                            "+37120399399",
                            "+37120399311",
                            "+37120399377",
                        ]
                    ],


                    'response' => [
                        200 => [
                            'headers' => self::responseHeaders(),
                            'user' => [
                                'id' => "ac84fda7-f30d-4a9d-92cf-bc16c6a65d5e",
                                'name' => "Тимур80",
                                'image_url' => "https://api.timehook.local/samples/avatar/9.png"
                            ],
                        ],
                        422 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => false,
                                'message' => "Record does not exists"
                            ],
                        ]
                    ],
                ],

                // Send invitation
                [
                    'title' => 'Send invitation',
                    'desc' => '',

                    'route' => route('invites.send'),
                    'method' => 'POST',
                    'headers' => self::middlewareHeaders(),
                    'body' => [
                        'user_id' => "ac84fda7-f30d-4a9d-92cf-bc16c6a65d5e"
                    ],


                    'response' => [
                        200 => [
                            'headers' => self::responseHeaders(),
                            'message' => "Success"
                        ],
                        422 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => false,
                                'message' => "Record does not exists"
                            ],
                        ]
                    ],
                ],

                // Remove invitation
                [
                    'title' => 'Remove invitation',
                    'desc' => '',

                    'route' => route('invites.remove'),
                    'method' => 'POST',
                    'headers' => self::middlewareHeaders(),
                    'body' => [
                        'user_id' => "ac84fda7-f30d-4a9d-92cf-bc16c6a65d5e"
                    ],


                    'response' => [
                        200 => [
                            'headers' => self::responseHeaders(),
                            'message' => "Success"
                        ],
                        422 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => false,
                                'message' => "Record does not exists"
                            ],
                        ]
                    ],
                ],

                // Accept invitation
                [
                    'title' => 'Accept invitation',
                    'desc' => '',

                    'route' => route('invites.accept'),
                    'method' => 'POST',
                    'headers' => self::middlewareHeaders(),
                    'body' => [
                        'invite_id' => "322"
                    ],

                    'response' => [
                        200 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => true,
                                'message' => "Invite has been sent"
                            ],
                        ],
                        422 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => false,
                                'message' => "Record does not exists"
                            ],
                        ]
                    ],
                ],

                // Decline invitation
                [
                    'title' => 'Decline invitation',
                    'desc' => '',

                    'route' => route('invites.decline'),
                    'method' => 'POST',
                    'headers' => self::middlewareHeaders(),
                    'body' => [
                        'invite_id' => "322"
                    ],

                    'response' => [
                        200 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => true,
                                'message' => "Invite has been declined"
                            ],
                        ],
                        422 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => false,
                                'message' => "Record does not exists"
                            ],
                        ]
                    ],
                ],
            ]
        ];
    }

}