package io.delphiplatform.api.v3.model.ads;

import com.fasterxml.jackson.annotation.JsonProperty;

import io.delphiplatform.api.v3.rdb.entity.ads.linkfire.LinkfireDimReferrerEntity;

public class LinkfireReferrer {

    @JsonProperty("referrer_key")
    private Long referrerKey;

    @JsonProperty("referrer")
    private String referrer;

    @JsonProperty("referrer_domain")
    private String referrerDomain;

    public static LinkfireReferrer from(LinkfireDimReferrerEntity entity) {
        if (entity == null) {
            return null;
        }
        return new LinkfireReferrer()
            .referrerKey(entity.getReferrerKey())
            .referrer(entity.getReferrerName())
            .referrerDomain(entity.getUrlDomainName());
    }

    public LinkfireReferrer referrer(String referrer) {
        this.referrer = referrer;
        return this;
    }

    public String getReferrer() {
        return referrer;
    }

    public void setReferrer(String referrer) {
        this.referrer = referrer;
    }

    public LinkfireReferrer referrerKey(Long referrerKey) {
        this.referrerKey = referrerKey;
        return this;
    }

    public Long getReferrerKey() {
        return referrerKey;
    }

    public void setReferrerKey(Long referrerKey) {
        this.referrerKey = referrerKey;
    }

    public LinkfireReferrer referrerDomain(String referrerDomain) {
        this.referrerDomain = referrerDomain;
        return this;
    }

    public String getReferrerDomain() {
        return referrerDomain;
    }

    public void setReferrerDomain(String referrerDomain) {
        this.referrerDomain = referrerDomain;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class LinkfireReferrer {\n");

        sb.append("    referrer: ").append(toIndentedString(referrer)).append("\n");
        sb.append("    referrerDomain: ").append(toIndentedString(referrerDomain)).append("\n");
        sb.append("}");
        return sb.toString();
    }

    private String toIndentedString(Object o) {
        if (o == null) {
            return "null";
        }
        return o.toString().replace("\n", "\n    ");
    }
}

