require_dependency "phcdevworks_core_modules/application_controller"

module PhcdevworksCoreModules
    class Marketing::OptimizationsController < ApplicationController

        # Filters & Security
        #include PhcdevworksCore::PhcpluginsHelper
        before_action :authenticate_user!
        before_action :set_paper_trail_whodunnit
        before_action :set_marketing_optimization, only: [:show, :edit, :update, :destroy]

        # GET /marketing/optimizations
        def index
            @marketing_optimizations = Marketing::Optimization.order('marketing_optimization_page_title ASC')
        end

        # GET /marketing/optimizations/1
        def show
        end

        # GET /marketing/optimizations/new
        def new
            @marketing_optimization = Marketing::Optimization.new
        end

        # GET /marketing/optimizations/1/edit
        def edit
        end

        # POST /marketing/optimizations
        def create
            @marketing_optimization = Marketing::Optimization.new(marketing_optimization_params)
            @marketing_optimization.user_id = current_user.id
            @marketing_optimization.org_id = current_user.org_id
            respond_to do |format|
                if @marketing_optimization.save
                    format.html { redirect_to marketing_optimizations_path, :flash => { :success => 'SEO Attributes has been Added.' }}
                    format.json { render :show, status: :created, location: @marketing_optimization }
                else
                    format.html { render :new }
                    format.json { render json: @marketing_optimization.errors, status: :unprocessable_entity }
                end
            end
        end

        # PATCH/PUT /marketing/optimizations/1
        def update
            respond_to do |format|
                if @marketing_optimization.update(marketing_optimization_params)
                    format.html { redirect_to marketing_optimizations_path, :flash => { :notice => 'Tutorial has been Updated.' }}
                    format.json { render :show, status: :ok, location: @marketing_optimization }
                else
                    format.html { render :edit }
                    format.json { render json: @marketing_optimization.errors, status: :unprocessable_entity }
                end
            end
        end

        # DELETE /marketing/optimizations/1
        def destroy
            @marketing_optimization.destroy
            respond_to do |format|
                format.html { redirect_to marketing_optimizations_path, :flash => { :error => 'SEO Attributes and Post Connections have all been Removed.' }}
                format.json { head :no_content }
            end
        end

        private

        # Common Callbacks
        def set_marketing_optimization
            @marketing_optimization = Marketing::Optimization.find(params[:id])
        end

        # Whitelist
        def marketing_optimization_params
            params.require(:marketing_optimization).permit(:marketing_optimization_page_title, :marketing_optimization_page_description, :marketing_optimization_og_title, :marketing_optimization_og_description, :marketing_optimization_og_type, :marketing_optimization_og_url, :marketing_optimization_twitter_title, :marketing_optimization_twitter_description, :marketing_optimization_twitter_type, :marketing_optimization_twitter_url, :marketing_optimization_twitter_image, :marketing_optimization_og_image, :slug, :user_id, :org_id)
        end
    
    end
end