import { ads } from "lincd-ads/lib/ontologies/ads";
import { AdSet } from "lincd-ads/lib/shapes/AdSet";
import { dcelems } from "lincd-dcmi/lib/ontologies/dc";
import { PropertyMapping } from "lincd-rest-api/lib/shapes/PropertyMapping";
import AccountMapping from "./Account";
import CampaignMapping from "./Campaign";

const mapper: PropertyMapping<AdSet> = new PropertyMapping(AdSet, {
    shapeParams: [["adSetId"]],
    URI: "https://quora.api.lincd.org/",
});

/** Additional available properties:
accountName
accountCurrency
campaignName
conversions
conversionRate
leadsGenerated
formCompletionRate
costPerLead
 */
mapper.map(ads.bidAmount, ["bidAmount"]);
mapper.map(ads.clicks, ["clicks"]);
mapper.map(ads.cpc, ["cpc"]);
mapper.map(ads.ctr, ["ctr"]);
mapper.map(ads.impressions, ["impressions"]);
mapper.map(ads.spend, ["spend"]);
mapper.map(ads.status, ["status"]);
mapper.map(dcelems.identifier, ["adSetId"]);
mapper.map(dcelems.title, ["adSetName"]);

mapper.map(ads.account, AccountMapping);
mapper.map(ads.campaign, CampaignMapping);

export default mapper;
