<?php

namespace App\PackagesApi\Docs\v2;

class AuthApiDoc extends AbstractV1Doc
{

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

                [
                    'title' => 'Send verification code via SMS to verify it in register/login reguest',
                    'desc' => 'Request to send verifications code to phone number',

                    'route' => route('auth.send-phone-code'),
                    'method' => 'POST',
                    'headers' => self::authHeaders(),
                    'body' => [
                        'phone_code' => "371",
                        'phone_number' => "22332233",
                    ],

                    'response' => [
                        200 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => true,
                                'exists' => true,
                                'has_username' => true,
                                'token' => "someverybigtokenhere"
                            ],
                        ],

                        422 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => false,
                                'message' => "Code is wrong"
                            ],
                        ],

                        401 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => false,
                                'message' => "Bad request"
                            ],
                        ]
                    ],
                ],

                [
                    'title' => 'Login user',
                    'desc' => 'Verify phone code and login user',

                    'route' => route('auth.login'),
                    'method' => 'POST',
                    'headers' => self::authHeaders(),
                    'body' => [
                        'code' => "0000",
                    ],

                    'response' => [
                        200 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => true,
                                'token' => "someverybigtokenhere"
                            ],
                        ],

                        422 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => false,
                                'message' => "Code is wrong"
                            ],
                        ],

                        401 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => false,
                                'message' => "Bad request"
                            ],
                        ]
                    ],
                ],

                [
                    'title' => 'Register user',
                    'desc' => 'Verify phone code and create user',

                    'route' => route('auth.verify-code'),
                    'method' => 'POST',
                    'headers' => self::authHeaders(),
                    'body' => [
                        'code' => '1232'
                    ],

                    'response' => [
                        200 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => true,
                                'token' => "someverybigtokenhere"
                            ],
                        ],
                    ],
                ],

                // Update nickname
                [
                    'title' => 'Update nickname and finish registration',
                    'desc' => '',

                    'route' => route('settings.update-nickname'),
                    'method' => 'POST',
                    'headers' => self::middlewareHeaders(),
                    'body' => [
                        'nickname' => "nickname",
                    ],

                    'response' => [

                        200 => [
                            'headers' => self::responseHeaders(),
                            'body' => [
                                'success' => true,
                                'settings' => [
                                    'phone_code' => '371',
                                    'phone_number' => '22332233',
                                    'phone_hash' => '91674332ff3a178a4f83e1d9c4d619c8',
                                    'nickname' => 'Nickname',
                                    'isAppNotificationsEnabled' => true,
                                    'isPushNotificationsEnabled' => true,
                                    'last_notification_seen' => '1552559817',
                                    'onboarding_done' => true,

                                    'image_url' => 'Avatar URL thumb, if set',
                                    'original_image_url' => 'Avatar URL original, if set',
                                ]
                            ],
                        ]
                    ],
                ],
            ]
        ];
    }

}