import { ads } from "lincd-ads/lib/ontologies/ads";
import { Ad } from "lincd-ads/lib/shapes/Ad";
import { dcelems } from "lincd-dcmi/lib/ontologies/dc";
import { PropertyMapping } from "lincd-rest-api/lib/shapes/PropertyMapping";
import AccountMapping from "./Account";
import AdSetMapping from "./AdSet";

const mapper: PropertyMapping<Ad> = new PropertyMapping(Ad, {
    shapeParams: [["adId"]],
    URI: "https://quora.api.lincd.org/",
});

/** Additional available properties:
accountName
accountCurrency
adSetName
campaignName
conversions
conversionRate
landingURL
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, ["adId"]);
mapper.map(dcelems.title, ["adName"]);

mapper.map(ads.account, AccountMapping);
mapper.map(ads.adSet, AdSetMapping);

export default mapper;
