package io.delphiplatform.api.v3.rdb.entity;

import java.time.LocalDate;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;

import lombok.Getter;
import lombok.Setter;

@Entity(name = "company")
@Getter
@Setter
public class CompanyEntity extends TrackedEntity {

    @Id
    private String companyKey;
    private String companyName;
    private Boolean isActiveFlag;
    private Boolean isDspFlag;
    private Boolean isMaintOwner;
    private LocalDate notActiveSinceDate;
    private Integer orgRegionKey;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "business_unit_key")
    private BusinessUnitEntity businessUnit;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "report_company_key")
    private BusinessUnitEntity reportCompany;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "country_key", nullable = false)
    private CountryEntity country;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "org_country_key", nullable = false)
    private CountryEntity orgCountry;
    @OneToOne(mappedBy = "repertoireOwnerCompany", fetch = FetchType.LAZY)
    private RepertoireOwnerEntity repertoireOwner;

}
