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

import java.util.Collection;

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

import io.delphiplatform.api.v3.rdb.entity.DspEntity;
import io.delphiplatform.api.v3.rdb.entity.ParentRepertoireOwnerEntity;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Entity(name = "ads_account")
public class AdsAccountEntity {

    @Id
    private String accountId;
    private String accountName;
    private String masterAccountId;
    private String accountCurrency;
    private String providerName;
    private String parentRepOwnerName;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "parent_rep_owner_id")
    private ParentRepertoireOwnerEntity parentRepertoireOwner;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "dsp", nullable = false)
    private DspEntity dsp;
    @OneToMany(mappedBy = "adsAccount")
    private Collection<AdsAdSetEntity> adsAdSets;
    @OneToMany(mappedBy = "adsAccount")
    private Collection<AdsCampaignEntity> adsCampaigns;

}
