package com.eksad.masterdata.domain;

import jakarta.persistence.*;

import java.io.Serializable;
import java.util.Date;

@Entity
@Inheritance
@DiscriminatorColumn(name = "receipt_obj_disc", length = 50)
@Table(name = "trx_receipt_so")
public abstract class TransactionBaseObjectSO implements Serializable {

    @Id
    @GeneratedValue
    private Long id;

    @Version
    private Long version;

    protected String createdBy;
    @Temporal(TemporalType.TIMESTAMP)
    protected Date createdDate;
    protected String updatedBy;
    @Temporal(TemporalType.TIMESTAMP)
    protected Date updatedDate;
    protected String recordID;

    public TransactionBaseObjectSO() {
    }

    public TransactionBaseObjectSO(String createdBy, Date createdDate, String updatedBy, Date updatedDate, String recordID, Long version) {
        this.createdBy = createdBy;
        this.createdDate = createdDate;
        this.updatedBy = updatedBy;
        this.updatedDate = updatedDate;
        this.recordID = recordID;
        this.version = version;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public Date getUpdatedDate() {
        return updatedDate;
    }

    public void setUpdatedDate(Date updatedDate) {
        this.updatedDate = updatedDate;
    }

    public String getRecordID() {
        return recordID;
    }

    public void setRecordID(String recordID) {
        this.recordID = recordID;
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }
}