package com.saas.tenant.dto.request;

import com.saas.tenant.entity.ResourceType;
import com.saas.tenant.entity.ServiceType;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class CreateMedicalServiceRequest {

    @NotBlank(message = "Name is required")
    private String name;

    private String description;

    @NotNull(message = "Type is required")
    private ServiceType type;

    @NotNull(message = "Duration is required")
    @Min(value = 1, message = "Duration must be at least 1 minute")
    private Integer durationMinutes;

    @NotNull(message = "Standard price is required")
    @DecimalMin(value = "0.0", message = "Price must be positive")
    private BigDecimal standardPrice;

    private BigDecimal doctorSpecificPrice;
    private String keywords; // JSON array string
    private String associatedSymptoms; // JSON array string
    private Long doctorId;
    private Boolean requiresResource;
    private ResourceType requiredResourceType;
}
