package com.hepl.tunefortwo.dto;

import org.springframework.web.multipart.MultipartFile;

import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema.AccessMode;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.PositiveOrZero;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
public class InstrumentRequestDto {
//	 @Schema(description = "Name of the instrument", example = "Guitar", required = true)
//	    @NotBlank(message = "Name cannot be blank")
//	    private String name;
//
//	    @Schema(description = "Price of the instrument", example = "499.99", required = true)
//	    @PositiveOrZero(message = "Price cannot be negative")
//	    private double price;
//
//	    @Schema(description = "Audio file", accessMode = Schema.AccessMode.WRITE_ONLY, required = false)
//	    private MultipartFile audio;
//
//	    @Schema(description = "Path to the audio file", accessMode = Schema.AccessMode.READ_ONLY, required = true)
//	    private String audioPath;
//	    
//	    @Schema(accessMode = Schema.AccessMode.READ_ONLY, required = false)
//	    private String audioDuration;
	  @NotBlank(message = "{Instrument Name Cannot Be Empty}")
	    @Size(max = 60, message = "{Instrument Name Must Be Maximum Of_60 Characters}")
	    @Pattern(regexp = "^[a-zA-Z\\s]*$", message = "{Instrument Name Cannot Contain Special Characters}")
	    @Schema(accessMode = AccessMode.READ_WRITE)
		private String name;
	    @Schema(requiredMode = Schema.RequiredMode.REQUIRED)
		private double price;
	    @Schema(requiredMode = Schema.RequiredMode.NOT_REQUIRED,accessMode = AccessMode.READ_WRITE,required=false)
//		@Schema(accessMode = AccessMode.READ_WRITE,required=false)
		private MultipartFile audio;
		@Schema(accessMode = AccessMode.READ_ONLY,required = false)
		private String audioPath;
		@Schema(accessMode = AccessMode.READ_ONLY)
		private String audioDuration;
		@Schema(accessMode = AccessMode.READ_WRITE)
		private String description;
		@Schema(accessMode = AccessMode.READ_WRITE)
		private String image;
		@Schema(accessMode = AccessMode.READ_WRITE)
		private String imageTitle;
		@Schema(accessMode = AccessMode.READ_WRITE)
	    private boolean isBestSeller;
		@Schema(accessMode = AccessMode.READ_WRITE)
		private String instrumentCategory;
		
	    
}
