package cz.moneta.test.dsl.auto.autoapi.lamder.authentication.login;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
@Data
public class LoginResponse {
    private Privileges[] privileges;
    private AccessToken accessToken;
    private Operator operator;
    private RefreshToken refreshToken;
    private Code code;
    private Message message;

    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public static class Message {
        private String message;
    }

    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public static class Code {
        private String code;
    }

    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public static class AccessToken {
        private String token;
        private String expiresAt;
    }

    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public static class RefreshToken {
        private String token;
    }

    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public static class Privileges {
        private Integer privilegeId;
        private Integer roleId;
        private String privilegeName;
    }

    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public static class Operator {
        private String firstName;
        private String lastName;
        private Boolean changePassword;
        private Integer operatorId;
        private Integer acquisitionPlaceId;
        private Boolean tescoVisible;
        private Boolean commissionDealerVisible;
        private Boolean commissionAgentVisible;
        private Boolean biometricSign;
        private Boolean cancelApplication;
        private Boolean blockRc;
        private String fullName;
        private Boolean darkMode;
        private Integer dealerId;
        private Boolean manualDealerSelection;
        private String defaultForm;
    }
}
