package org.nstart.dep265.requestservice.entity

import jakarta.persistence.Column
import jakarta.persistence.Entity
import jakarta.persistence.EnumType
import jakarta.persistence.Enumerated
import jakarta.persistence.Id
import jakarta.persistence.Table
import java.util.UUID

@Entity
@Table(name = "request_optics_params")
class RequestOpticsParamsEntity(
    @Id
    @Column(name = "request_id", nullable = false)
    var requestId: UUID,

    @Enumerated(EnumType.STRING)
    @Column(name = "result_type", nullable = false, length = 32)
    var resultType: OpticsResultType,

    @Column(name = "resolution", nullable = false)
    var resolution: Double,

    @Column(name = "sun_angle_min", nullable = false)
    var sunAngleMin: Double = 10.0,

    @Column(name = "sun_angle_max", nullable = false)
    var sunAngleMax: Double = 90.0,

    @Column(name = "clouds", nullable = false)
    var clouds: Double = 100.0,
)

/**
 * Результат оптической съемки.
 */
enum class OpticsResultType {
    /** Панхроматическая съемка. */
    PANCHROMATIC,

    /** Мультиспектральная съемка. */
    MULTISPECTRAL,

    /** Паншарпенинг. */
    PANSHARPENING,
}
