package com.cyksj.model.request;

import lombok.Data;

import java.util.List;

/**
 * @author chan
 * @date 2023/1/9 5:33 PM
 */
@Data
public class SpotifyRegisterReq {
    /*
    {
            "account_details": {
                "birthdate": "2001-06-23",
                "consent_flags": {
                    "eula_agreed": true,
                    "send_email": false,
                    "third_party_email": true
                },
                "display_name": "chan sudie",
                "email_and_password_identifier": {
                    "email": "chansuide@github.com",
                    "password": "chansuide1234"
                },
                "gender": 1
            },
            "callback_uri": "https://www.spotify.com/signup/challenge?locale=tr",
            "client_info": {
                "api_key": "a1e486e2729f46d6bb368d6b2bcda326",
                "app_version": "v2",
                "capabilities": [1],
                "installation_id": "07b84cda-709c-432e-af56-84245c6e4294",
                "platform": "www"
            },
            "tracking": {
                "creation_flow": "",
                "creation_point": "https://www.spotify.com/tr/",
                "referrer": ""
            }
        }
     */
    private AccountDetails account_details;

    private String callback_uri = "https://www.spotify.com/signup/challenge?locale=tr";

    private ClientInfo client_info = new ClientInfo();

    private Tracking tracking = new Tracking();

    @Data
    public static class AccountDetails{

        private String birthdate;

        private ConsentFlags consent_flags = new ConsentFlags();

        private String display_name;

        private EmailAndPasswordIdentifier email_and_password_identifier;

        private Integer gender;
        @Data
        public static class ConsentFlags{
            private Boolean eula_agreed = true;

            private Boolean send_email = true;

            private Boolean third_party_email = true;
        }
        @Data
        public static class EmailAndPasswordIdentifier{
            /*
            "email": "chansuide@github.com",
                    "password": "chansuide1234"
             */
            private String email;

            private String password;
        }
    }
    @Data
    public static class ClientInfo{

        //private String api_key =  "a1e486e2729f46d6bb368d6b2bcda326";
        private String api_key =  "4c7a36d5260abca4af282779720cf631";

        private String app_version = "v2";

        private List<Integer> capabilities = List.of(1);

        private String installation_id = "07b84cda-709c-432e-af56-84245c6e4294";

        private String platform = "www";
    }
    @Data
    public static class Tracking{

        private String creation_flow = "";

        private String creation_point = "https://www.spotify.com/tr/";

        private String referrer = "";
    }
}
