/*
**************************************************************************************
* Program Name  : AssetStatusChange.java
* Author        : Kawade Swapnali
* Date          : 2026
* System Name   : gswbs
* Purpose       : Entity class for Asset Status Change module.
**************************************************************************************
*/

package com.coder.asset.status.change.model;

import java.time.LocalDate;

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "asset_status_change")
public class AssetStatusChange {

    /* ========= PRIMARY ========= */
    @Id
    private String statusChangeId;          // 1

    private String changeNumber;            // 2

    /* ========= DATE ========= */
    private LocalDate changeDate;           // 3

    /* ========= ASSET ========= */
    private String assetId;                 // 4
    private String assetSerialNumber;       // 5

    /* ========= STATUS ========= */
    private String oldStatus;               // 6
    private String newStatus;               // 7

    private String reasonForStatusChange;   // 8
    private String description;             // 9

    /* ========= REFERENCES ========= */
    private String allocationId;            // 10
    private String callLoggingId;           // 11
    private String replacementId;           // 12

    /* ========= USER ========= */
    private String changedBy;               // 13

    /* ========= CONDITION ========= */
    private String assetCondition;          // 14 (Good / Faulty / Damaged)

    /* ========= REMARKS ========= */
    private String remarks;                 // 15

    /* ========= AUDIT ========= */
    private String createdBy;               // 16
    private LocalDate createdDate;          // 17

    private String updatedBy;               // 18
    private LocalDate updatedDate;          // 19
}