TariffV2Request.java

package com.github.jenkaby.bikerental.tariff.web.command.dto;

import com.github.jenkaby.bikerental.shared.web.support.Slug;
import com.github.jenkaby.bikerental.tariff.domain.model.PricingType;
import com.github.jenkaby.bikerental.tariff.web.query.dto.PricingParams;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

import java.time.LocalDate;

@Schema(description = "Request body for creating or updating a V2 tariff")
public record TariffV2Request(
        @NotBlank @Size(max = 200) String name,
        @Size(max = 1000) String description,
        @Slug String equipmentTypeSlug,
        @NotNull PricingType pricingType,
        @Valid @NotNull PricingParams params,
        @NotNull LocalDate validFrom,
        LocalDate validTo
) {
}