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