from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

def facebook_ads_gen(product_name, product_description, llm, tone_of_voice, targeted_audience="", plans_promotions=""):
    
    if targeted_audience != "" and plans_promotions != "":
        facebook_ads_prompt = f"Generate a Facebook ad for {product_name} Product. {product_name} is {product_description}. Our Target Audience is {targeted_audience}. Our plans and promotions is {plans_promotions}. Tone of the ad should be {tone_of_voice}"

    elif targeted_audience == "" and plans_promotions != "":
        facebook_ads_prompt = f"Generate a Facebook ad for {product_name} Product. {product_name} is {product_description}. Our plans and promotions is {plans_promotions}. Tone of the ad should be {tone_of_voice}"
    
    elif targeted_audience != "" and plans_promotions == "":
        facebook_ads_prompt = f"Generate a Facebook ad for {product_name} Product. {product_name} is {product_description}. Our Target Audience is {targeted_audience}. Tone of the ad should be{tone_of_voice}."
    
    else:
        facebook_ads_prompt = f"Generate a Facebook ad for {product_name} Product. {product_name} is {product_description}. Tone of the ad Should be {tone_of_voice}."

    facebook_ads_promptTemp = PromptTemplate(
    input_variables=["text_input"],
    template="You are a Professional Facebook Ad Copywriter:\n{text_input}\nFacebook Ad:")
   
    facebook_ad_extraction_chain = LLMChain(llm=llm, prompt=facebook_ads_promptTemp)
    facebook_ad = facebook_ad_extraction_chain.run(facebook_ads_prompt)
    
    return facebook_ad