package com.laseroptek.raman.data.model.chart

import androidx.compose.animation.core.Animatable
import androidx.compose.animation.core.AnimationSpec
import androidx.compose.animation.core.AnimationVector1D
import androidx.compose.animation.core.EaseInOutCubic
import androidx.compose.animation.core.tween
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.unit.dp

data class Line(
    val label: String,
    var values: List<Double>,
    val color: Brush,
    val firstGradientFillColor: Color? = null,
    val secondGradientFillColor: Color? = null,
    val drawStyle: DrawStyle = DrawStyle.Stroke(2.dp),
    val strokeAnimationSpec: AnimationSpec<Float> = tween(2000, easing = EaseInOutCubic),
    val gradientAnimationSpec: AnimationSpec<Float> = tween(2000),
    val gradientAnimationDelay: Long = 1000,
    val dotProperties: DotProperties? = DotProperties(
        enabled = true,
        color = SolidColor(Color(0xffE1E2EC)),
        strokeWidth = 2.dp,
        strokeColor = SolidColor(Color(0, 204, 204)),
    ),
    val popupProperties: PopupProperties? = null,
    val curvedEdges:Boolean? = true,
    val strokeProgress: Animatable<Float, AnimationVector1D> = Animatable(0f),
    val gradientProgress: Animatable<Float, AnimationVector1D> = Animatable(0f),
)