package com.vaessl.app.connection;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.vaessl.app.shared.ServiceType;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

public record ConnectionRequest(@NotBlank(message = "App URL is mandatory") String appUrl,
                @NotNull(message = "Service type is mandatory") ServiceType serviceType,
                String username, String password, String apiKey,
                @JsonProperty(defaultValue = "false") Boolean stayLoggedIn) {

        public ConnectionRequest {
                if (stayLoggedIn == null) {
                        stayLoggedIn = false;
                }
        }

        public ConnectionRequest(String appUrl, ServiceType serviceType, String username,
                        String password, Boolean stayLoggedIn) {
                this(appUrl, serviceType, username, password, null, stayLoggedIn);
        }
}
