package com.sonymusic.dx.persistence.gras;

import jakarta.persistence.*;
import org.hibernate.type.YesNoConverter;

import java.io.Serializable;

@Entity
@Table(name = "vgras234")
public class StrategicReportingGroup extends RAASEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @Column(name = "is_active_flag", nullable = false, length = 1)
    @Convert(converter = YesNoConverter.class)
    private boolean isActive;

    @Column(name = "strategic_rep_grp_code", length = 1)
    private String strategicReportingGroupCode;

    @Id
    @Column(name = "strategic_rep_grp_key", nullable = false)
    private Long strategicReportingGroupKey;

    @Column(name = "strategic_rep_grp_name", nullable = false, length = 250)
    private String strategicRepoprtingGroupName;

    public boolean isActive() {
        return isActive;
    }

    public void setActive(boolean isActive) {
        this.isActive = isActive;
    }

    public String getStrategicReportingGroupCode() {
        return strategicReportingGroupCode;
    }

    public void setStrategicReportingGroupCode(String strategicReportingGroupCode) {
        this.strategicReportingGroupCode = strategicReportingGroupCode;
    }

    public Long getStrategicReportingGroupKey() {
        return strategicReportingGroupKey;
    }

    public void setStrategicReportingGroupKey(Long strategicReportingGroupKey) {
        this.strategicReportingGroupKey = strategicReportingGroupKey;
    }

    public String getStrategicRepoprtingGroupName() {
        return strategicRepoprtingGroupName;
    }

    public void setStrategicRepoprtingGroupName(String strategicRepoprtingGroupName) {
        this.strategicRepoprtingGroupName = strategicRepoprtingGroupName;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getStrategicReportingGroupKey() == null) ? 0 : getStrategicReportingGroupKey().hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (!(obj instanceof StrategicReportingGroup))
            return false;
        StrategicReportingGroup other = (StrategicReportingGroup) obj;
        if (getStrategicReportingGroupKey() == null) {
            if (other.getStrategicReportingGroupKey() != null)
                return false;
        } else if (!getStrategicReportingGroupKey().equals(other.getStrategicReportingGroupKey()))
            return false;
        return true;
    }

}