// FPSMS-backend/src/main/java/com/ffii/fpsms/modules/stock/web/model/PickExecutionIssueRequest.kt
package com.ffii.fpsms.modules.pickOrder.web.models

import java.math.BigDecimal
import java.time.LocalDate
import java.time.LocalDateTime



data class PickExecutionIssueRequest(
    val pickOrderId: Long,
    val pickOrderCode: String,
    val pickOrderCreateDate: LocalDate? = null,
    val pickExecutionDate: LocalDate? = null,
    val pickOrderLineId: Long,
    val itemId: Long,
    val itemCode: String? = null,
    val itemDescription: String? = null,
    val lotId: Long? = null,
    val lotNo: String? = null,
    val issueNo: String? = null,
    val issueCategory: String = "lot_issue",
    val storeLocation: String? = null,
    val requiredQty: BigDecimal? = null,
    val actualPickQty: BigDecimal? = null,
    val missQty: BigDecimal = BigDecimal.ZERO,
    val badItemQty: BigDecimal = BigDecimal.ZERO,
    val issueRemark: String? = null,
    val pickerName: String? = null,
    val handledBy: Long? = null,
    val badReason: String? = null, 
)


data class StockIssueResponse(
    val id: Long,
    val itemId: Long,
    val itemCode: String?,
    val itemDescription: String?,
    val lotId: Long?,
    val lotNo: String?,
    val storeLocation: String?,
    val requiredQty: BigDecimal?,
    val actualPickQty: BigDecimal?,
    val missQty: BigDecimal,  
    val badItemQty: BigDecimal,  
    val bookQty: BigDecimal,  
    val issueQty: BigDecimal, 
    val issueRemark: String?,
    val pickerName: String?,
    val handleStatus: String,
    val handleDate: LocalDate?,
    val handledBy: Long?,
    val uomDesc: String?
)