#!/usr/bin/env python3
"""
Pinterest Manager - Placeholder until API approval
For now, generates pin data for manual upload
"""

import argparse
import json
import os
from datetime import datetime
from pathlib import Path

# Pin description templates by niche
TEMPLATES = {
    "military": {
        "keywords": ["USMC", "Marine Corps", "veteran", "military", "Semper Fi", "military wife", "military mom"],
        "hashtags": ["#MilitaryLife", "#USMC", "#VeteranMade", "#MilitaryFamily", "#ProudMarine"]
    },
    "patriotic": {
        "keywords": ["USA", "American", "patriotic", "4th of July", "flag", "eagle", "freedom"],
        "hashtags": ["#USA", "#PatrioticDecor", "#AmericanMade", "#4thOfJuly", "#RedWhiteBlue"]
    },
    "christian": {
        "keywords": ["faith", "scripture", "Christian", "Reformed", "church", "Bible verse", "prayer"],
        "hashtags": ["#ChristianArt", "#FaithBased", "#ScriptureArt", "#ChurchDecor", "#BibleVerse"]
    },
    "outdoor": {
        "keywords": ["hunting", "wildlife", "nature", "outdoor", "cabin", "forest", "deer", "elk"],
        "hashtags": ["#HuntingLife", "#WildlifeArt", "#CabinDecor", "#OutdoorLife", "#NatureArt"]
    }
}

def generate_pin_description(title: str, niche: str, etsy_link: str) -> dict:
    """Generate SEO-optimized pin description"""
    template = TEMPLATES.get(niche, TEMPLATES["patriotic"])
    
    description = f"""✨ {title} ✨

Perfect for Cricut, Silhouette, laser cutters, and vinyl cutting machines!

🎨 What you get:
• SVG file (vector, scalable)
• PNG file (high resolution)
• Instant digital download

💡 Great for:
• T-shirts & apparel
• Tumblers & mugs
• Wall art & signs
• Car decals & stickers

🛒 Shop now: {etsy_link}

{' '.join(template['hashtags'][:5])}
"""
    
    return {
        "title": title,
        "description": description.strip(),
        "keywords": template["keywords"],
        "hashtags": template["hashtags"],
        "niche": niche,
        "generated_at": datetime.now().isoformat()
    }

def create_pin_queue(designs_dir: str, output_file: str, niche: str, etsy_base_url: str):
    """Create a queue of pins from ready SVG designs"""
    designs_path = Path(designs_dir)
    pins = []
    
    for svg_file in designs_path.glob("*.svg"):
        # Generate title from filename
        title = svg_file.stem.replace("-", " ").replace("_", " ").title()
        
        pin_data = generate_pin_description(
            title=title,
            niche=niche,
            etsy_link=etsy_base_url
        )
        pin_data["source_file"] = str(svg_file)
        pin_data["image_for_pin"] = str(svg_file.with_suffix(".png"))
        pins.append(pin_data)
    
    with open(output_file, "w") as f:
        json.dump({"pins": pins, "created": datetime.now().isoformat()}, f, indent=2)
    
    print(f"Created pin queue with {len(pins)} pins: {output_file}")
    return pins

def main():
    parser = argparse.ArgumentParser(description="Pinterest Manager for Etsy SVG Shop")
    subparsers = parser.add_subparsers(dest="command")
    
    # Generate description
    gen_parser = subparsers.add_parser("generate", help="Generate pin description")
    gen_parser.add_argument("--title", required=True, help="Pin title")
    gen_parser.add_argument("--niche", choices=["military", "patriotic", "christian", "outdoor"], required=True)
    gen_parser.add_argument("--etsy-link", required=True, help="Etsy listing URL")
    
    # Create queue
    queue_parser = subparsers.add_parser("queue", help="Create pin queue from designs")
    queue_parser.add_argument("--designs-dir", required=True, help="Directory with SVG designs")
    queue_parser.add_argument("--output", default="pin-queue.json", help="Output file")
    queue_parser.add_argument("--niche", choices=["military", "patriotic", "christian", "outdoor"], required=True)
    queue_parser.add_argument("--etsy-url", required=True, help="Etsy shop base URL")
    
    args = parser.parse_args()
    
    if args.command == "generate":
        result = generate_pin_description(args.title, args.niche, args.etsy_link)
        print(json.dumps(result, indent=2))
    elif args.command == "queue":
        create_pin_queue(args.designs_dir, args.output, args.niche, args.etsy_url)
    else:
        parser.print_help()

if __name__ == "__main__":
    main()
