"""Phase 4: Launch templates for the Template Marketplace.

20 templates covering common use cases, each leveraging Phase 3 features:
- Conditional fields
- Validation rules
- Calculated fields
- Multi-step support
"""

LAUNCH_TEMPLATES = [
    # 1. Contact Us — Simple, universal
    {
        "slug": "contact-us",
        "name": "Contact Us",
        "description": "Classic contact form with name, email, phone, subject, and message.",
        "category": "Support",
        "is_featured": 1,
        "success_message": "Thanks for reaching out! We'll get back to you within 24 hours.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 255},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": False,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "subject",
                "label": "Subject",
                "type": "select",
                "required": True,
                "options": ["General Inquiry", "Support", "Partnership", "Feedback", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "message",
                "label": "Message",
                "type": "textarea",
                "required": True,
                "validation": {"minLength": 10, "maxLength": 2000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 2. Quote Request — With conditionals
    {
        "slug": "quote-request",
        "name": "Quote Request",
        "description": "Business quote form with service type selection and conditional fields.",
        "category": "Business",
        "is_featured": 1,
        "success_message": "Quote request received! We'll send you an estimate within 1-2 business days.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "company",
                "label": "Company Name",
                "type": "text",
                "required": False,
                "validation": {"maxLength": 200},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": False,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "service_type",
                "label": "Service Needed",
                "type": "select",
                "required": True,
                "options": ["Web Development", "Marketing", "Consulting", "Design", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "project_details",
                "label": "Project Details",
                "type": "textarea",
                "required": True,
                "validation": {"minLength": 20, "maxLength": 2000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "timeline",
                "label": "Desired Timeline",
                "type": "select",
                "required": False,
                "options": ["ASAP", "Within 2 weeks", "Within a month", "Flexible"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "budget_range",
                "label": "Budget Range",
                "type": "select",
                "required": False,
                "options": ["Under $1,000", "$1,000 - $5,000", "$5,000 - $10,000", "$10,000+", "Not sure yet"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 3. Event RSVP — With conditionals (+1, dietary)
    {
        "slug": "event-rsvp",
        "name": "Event RSVP",
        "description": "RSVP form with attendance confirmation and conditional +1/dietary fields.",
        "category": "Events",
        "is_featured": 1,
        "success_message": "RSVP received! We'll send you a confirmation email with event details.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "attending",
                "label": "Will you be attending?",
                "type": "select",
                "required": True,
                "options": ["Yes, I'll be there!", "Maybe", "No, I can't make it"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "guest_count",
                "label": "Number of guests (including yourself)",
                "type": "number",
                "required": False,
                "validation": {"min": 1, "max": 10},
                "condition": {"field": "attending", "operator": "equals", "value": "Yes, I'll be there!"},
                "calculation": None,
                "step": 1,
            },
            {
                "name": "dietary_restrictions",
                "label": "Dietary Restrictions",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 500},
                "condition": {"field": "attending", "operator": "equals", "value": "Yes, I'll be there!"},
                "calculation": None,
                "step": 1,
            },
            {
                "name": "special_requests",
                "label": "Special Requests or Accessibility Needs",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 500},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 4. Job Application — With conditionals (experience-based)
    {
        "slug": "job-application",
        "name": "Job Application",
        "description": "Job application form with experience level conditionals and start date.",
        "category": "Hiring",
        "is_featured": 0,
        "success_message": "Application received! We'll review it and get back to you within 5 business days.",
        "field_config": [
            {
                "name": "first_name",
                "label": "First Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 1, "maxLength": 50},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "last_name",
                "label": "Last Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 1, "maxLength": 50},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": True,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "position",
                "label": "Position Applying For",
                "type": "text",
                "required": True,
                "validation": {"maxLength": 200},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "experience_level",
                "label": "Experience Level",
                "type": "select",
                "required": True,
                "options": [
                    "Entry Level (0-2 years)",
                    "Mid Level (3-5 years)",
                    "Senior (6-10 years)",
                    "Lead/Manager (10+ years)",
                ],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "portfolio_url",
                "label": "Portfolio / LinkedIn URL",
                "type": "url",
                "required": False,
                "validation": {"pattern": "^https?://"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "start_date",
                "label": "Earliest Start Date",
                "type": "select",
                "required": True,
                "options": ["Immediately", "Within 2 weeks", "Within a month", "More than a month"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "cover_letter",
                "label": "Why are you interested in this position?",
                "type": "textarea",
                "required": True,
                "validation": {"minLength": 50, "maxLength": 2000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 5. Feedback/Survey — With rating and conditional follow-up
    {
        "slug": "feedback-survey",
        "name": "Feedback & Survey",
        "description": "Customer feedback form with rating, category, and conditional follow-up fields.",
        "category": "Support",
        "is_featured": 1,
        "success_message": "Thank you for your feedback! It helps us improve.",
        "field_config": [
            {
                "name": "rating",
                "label": "How would you rate your experience?",
                "type": "select",
                "required": True,
                "options": ["5 - Excellent", "4 - Very Good", "3 - Good", "2 - Fair", "1 - Poor"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "category",
                "label": "What is your feedback about?",
                "type": "select",
                "required": True,
                "options": [
                    "Product Quality",
                    "Customer Service",
                    "Website/UX",
                    "Delivery/Shipping",
                    "Pricing",
                    "Other",
                ],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "positive_feedback",
                "label": "What went well?",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 1000},
                "condition": {"field": "rating", "operator": "not_equals", "value": "1 - Poor"},
                "calculation": None,
                "step": 1,
            },
            {
                "name": "improvement_feedback",
                "label": "What can we improve?",
                "type": "textarea",
                "required": True,
                "validation": {"minLength": 10, "maxLength": 1000},
                "condition": {"field": "rating", "operator": "not_equals", "value": "5 - Excellent"},
                "calculation": None,
                "step": 1,
            },
            {
                "name": "would_recommend",
                "label": "Would you recommend us to others?",
                "type": "select",
                "required": True,
                "options": ["Definitely", "Probably", "Not Sure", "Probably Not", "Definitely Not"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "follow_up_email",
                "label": "Email (optional - for follow-up)",
                "type": "email",
                "required": False,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 7. Product Order — With calculation (total)
    {
        "slug": "product-order",
        "name": "Product Order",
        "description": "Product order form with shipping address, product selection, and quantity.",
        "category": "E-commerce",
        "is_featured": 1,
        "success_message": "Order received! We'll send a confirmation email with shipping details.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "address_line1",
                "label": "Shipping Address",
                "type": "text",
                "required": True,
                "validation": {"maxLength": 300},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "address_line2",
                "label": "Apt / Suite (optional)",
                "type": "text",
                "required": False,
                "validation": {"maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "city",
                "label": "City",
                "type": "text",
                "required": True,
                "validation": {"maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "state",
                "label": "State / Province",
                "type": "text",
                "required": True,
                "validation": {"maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "zip_code",
                "label": "ZIP / Postal Code",
                "type": "text",
                "required": True,
                "validation": {"maxLength": 20},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "product",
                "label": "Product",
                "type": "select",
                "required": True,
                "options": [
                    "Seed Packet - Heirloom Tomatoes ($8.99)",
                    "Seed Packet - Heritage Corn ($7.49)",
                    "Seed Packet - Rainbow Carrots ($6.99)",
                    "Seasonal Starter Kit ($24.99)",
                    "Full Garden Bundle ($49.99)",
                ],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "quantity",
                "label": "Quantity",
                "type": "number",
                "required": True,
                "validation": {"min": 1, "max": 99},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "special_instructions",
                "label": "Special Instructions",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 500},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 11. Photography Consultation (Photography) — Featured
    {
        "slug": "photography-consultation",
        "name": "Photography Consultation",
        "description": "Book a free consultation to discuss your photography needs for weddings, portraits, events, and more.",
        "category": "Photography",
        "is_featured": 1,
        "success_message": "Consultation request received! We'll reach out to schedule a chat about your needs.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 255},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": True,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "event_type",
                "label": "Event Type",
                "type": "select",
                "required": True,
                "options": ["Wedding", "Portrait", "Corporate", "Family", "Event", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "event_date",
                "label": "Event Date",
                "type": "date",
                "required": False,
                "validation": None,
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "event_location",
                "label": "Event Location",
                "type": "text",
                "required": False,
                "validation": {"maxLength": 300},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "package_interest",
                "label": "Package Interest",
                "type": "select",
                "required": False,
                "options": ["Basic", "Standard", "Premium", "Custom"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "number_of_hours",
                "label": "Number of Hours",
                "type": "number",
                "required": False,
                "validation": {"min": 1, "max": 16},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "estimated_guests",
                "label": "Estimated Guests/Subjects",
                "type": "number",
                "required": False,
                "validation": {"min": 1, "max": 10000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "special_requests",
                "label": "Special Requests",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "referral_source",
                "label": "How Did You Hear About Us",
                "type": "select",
                "required": False,
                "options": [
                    "Google Search",
                    "Social Media",
                    "Friend/Family",
                    "Wedding Venue",
                    "Advertisement",
                    "Other",
                ],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 12. Event Photography Booking (Photography) — Featured
    {
        "slug": "event-photography-booking",
        "name": "Event Photography Booking",
        "description": "Book professional photography coverage for your event with flexible delivery options.",
        "category": "Photography",
        "is_featured": 1,
        "success_message": "Booking request submitted! We'll confirm availability and send a contract for review.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 255},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": True,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "event_name",
                "label": "Event Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 200},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "event_date",
                "label": "Event Date",
                "type": "date",
                "required": True,
                "validation": None,
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "event_start_time",
                "label": "Event Start Time",
                "type": "time",
                "required": True,
                "validation": None,
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "event_end_time",
                "label": "Event End Time",
                "type": "time",
                "required": True,
                "validation": None,
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "event_address",
                "label": "Event Address",
                "type": "text",
                "required": True,
                "validation": {"maxLength": 300},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "event_type",
                "label": "Event Type",
                "type": "select",
                "required": True,
                "options": [
                    "Wedding",
                    "Corporate Event",
                    "Birthday Party",
                    "Conference",
                    "Gala",
                    "Sports Event",
                    "Other",
                ],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "number_of_guests",
                "label": "Number of Guests",
                "type": "number",
                "required": False,
                "validation": {"min": 1, "max": 10000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "delivery_format",
                "label": "Delivery Format",
                "type": "select",
                "required": True,
                "options": ["Digital", "Print", "Both"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "rush_delivery",
                "label": "Rush Delivery Needed",
                "type": "select",
                "required": True,
                "options": ["Yes", "No"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "special_instructions",
                "label": "Special Instructions",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 13. Photo Session Inquiry (Photography)
    {
        "slug": "photo-session-inquiry",
        "name": "Photo Session Inquiry",
        "description": "Inquire about photo sessions for families, couples, seniors, newborns, pets, and more.",
        "category": "Photography",
        "is_featured": 0,
        "success_message": "Session inquiry received! We'll get back to you with availability and pricing.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 255},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": True,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "session_type",
                "label": "Session Type",
                "type": "select",
                "required": True,
                "options": ["Family", "Couple", "Senior", "Graduation", "Newborn", "Pet", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "number_of_people",
                "label": "Number of People",
                "type": "number",
                "required": True,
                "validation": {"min": 1, "max": 50},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "preferred_location",
                "label": "Preferred Location",
                "type": "select",
                "required": True,
                "options": ["Studio", "Outdoor", "Client Location"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "session_length",
                "label": "Session Length",
                "type": "select",
                "required": True,
                "options": ["1hr", "2hrs", "3hrs"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "preferred_date",
                "label": "Preferred Date",
                "type": "date",
                "required": False,
                "validation": None,
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "outfit_ideas",
                "label": "Outfit Ideas",
                "type": "select",
                "required": True,
                "options": ["Yes", "No"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "addons_interest",
                "label": "Add-Ons Interest",
                "type": "select",
                "required": False,
                "options": ["Album", "Canvas", "Photos", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 14. Property Showing Request (Real Estate)
    {
        "slug": "property-showing-request",
        "name": "Property Showing Request",
        "description": "Schedule a property showing with your real estate agent for any available listing.",
        "category": "Real Estate",
        "is_featured": 0,
        "success_message": "Showing request submitted! Your agent will contact you to confirm the appointment.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 255},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": True,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "property_address",
                "label": "Property Address (or 'Any available')",
                "type": "text",
                "required": False,
                "validation": {"maxLength": 300},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "preferred_date",
                "label": "Preferred Date",
                "type": "date",
                "required": True,
                "validation": None,
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "preferred_time",
                "label": "Preferred Time",
                "type": "time",
                "required": True,
                "validation": None,
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "party_size",
                "label": "Number of People in Party",
                "type": "number",
                "required": True,
                "validation": {"min": 1, "max": 10},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "pre_approved",
                "label": "Pre-Approved",
                "type": "select",
                "required": True,
                "options": ["Yes", "No", "Maybe"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "must_have_features",
                "label": "Must-Have Features",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 500},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "nice_to_have_features",
                "label": "Nice-to-Have Features",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 500},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "questions",
                "label": "Questions or Special Requests",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 15. Home Buyer Consultation (Real Estate) — Featured
    {
        "slug": "home-buyer-consultation",
        "name": "Home Buyer Consultation",
        "description": "Get personalized guidance from our agents as you search for your next home.",
        "category": "Real Estate",
        "is_featured": 1,
        "success_message": "Consultation request received! We'll match you with the perfect agent for your needs.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 255},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": True,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "looking_to_buy",
                "label": "Looking To Buy",
                "type": "select",
                "required": True,
                "options": ["Yes", "No", "Just Browsing"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "property_type",
                "label": "Property Type",
                "type": "select",
                "required": False,
                "options": ["Single Family", "Condo", "Townhouse", "Land", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "price_range",
                "label": "Price Range",
                "type": "select",
                "required": False,
                "options": ["Under $100K", "$100K–$250K", "$250K–$500K", "$500K–$1M", "Over $1M", "Not Sure"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "preferred_location",
                "label": "Preferred Location",
                "type": "text",
                "required": False,
                "validation": {"maxLength": 200},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "timeline",
                "label": "Timeline",
                "type": "select",
                "required": False,
                "options": ["ASAP", "Within Month", "Within 3 Months", "Flexible"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "mortgage_status",
                "label": "Mortgage Status",
                "type": "select",
                "required": False,
                "options": ["Pre-Approved", "Pre-Qualified", "In Process", "Cash Buyer", "Not Sure", "Not Applicable"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "current_situation",
                "label": "Current Situation",
                "type": "select",
                "required": False,
                "options": ["First Time", "Upgrading", "Downsizing", "Investment"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "special_requirements",
                "label": "Special Requirements",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 16. Seller Listing Consultation (Real Estate)
    {
        "slug": "seller-listing-consultation",
        "name": "Seller Listing Consultation",
        "description": "Get a free consultation and market analysis for listing your property with us.",
        "category": "Real Estate",
        "is_featured": 0,
        "success_message": "Listing consultation requested! We'll provide a free market analysis and schedule a meeting.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 255},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": True,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "property_address",
                "label": "Property Address",
                "type": "text",
                "required": True,
                "validation": {"maxLength": 300},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "property_type",
                "label": "Property Type",
                "type": "select",
                "required": True,
                "options": ["Single Family", "Condo", "Townhouse", "Duplex", "Land", "Commercial", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "square_footage",
                "label": "Square Footage",
                "type": "number",
                "required": False,
                "validation": {"min": 0, "max": 100000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "beds_baths",
                "label": "Bedrooms/Bathrooms",
                "type": "text",
                "required": False,
                "validation": {"maxLength": 20},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "year_built",
                "label": "Year Built",
                "type": "number",
                "required": False,
                "validation": {"min": 1800, "max": 2030},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "reason_for_selling",
                "label": "Reason for Selling",
                "type": "select",
                "required": False,
                "options": ["Relocation", "Upgrading", "Downsizing", "Financial", "Investment Sale", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "desired_price",
                "label": "Desired Price Range",
                "type": "select",
                "required": False,
                "options": ["Under $100K", "$100K–$250K", "$250K–$500K", "$500K–$1M", "Over $1M", "Not Sure"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "timeline",
                "label": "Timeline",
                "type": "select",
                "required": False,
                "options": ["ASAP", "Within Month", "Within 3 Months", "Within 6 Months", "Flexible"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "already_have_agent",
                "label": "Already Have an Agent",
                "type": "select",
                "required": True,
                "options": ["Yes", "No"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 17. Client Intake Form (Consulting) — Featured
    {
        "slug": "client-intake-form",
        "name": "Client Intake Form",
        "description": "New client intake form to understand your company, challenges, and goals for consulting.",
        "category": "Consulting",
        "is_featured": 1,
        "success_message": "Intake form submitted! We'll review your information and schedule an initial consultation.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 255},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": True,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "company",
                "label": "Company",
                "type": "text",
                "required": True,
                "validation": {"maxLength": 200},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "company_size",
                "label": "Company Size",
                "type": "select",
                "required": False,
                "options": ["1–10", "11–50", "51–200", "201–1000", "1000+"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "industry",
                "label": "Industry",
                "type": "text",
                "required": False,
                "validation": {"maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "current_challenges",
                "label": "Current Challenges",
                "type": "textarea",
                "required": True,
                "validation": {"minLength": 10, "maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "goals",
                "label": "Goals",
                "type": "textarea",
                "required": True,
                "validation": {"minLength": 10, "maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "budget_range",
                "label": "Budget Range",
                "type": "select",
                "required": False,
                "options": [
                    "Under $5,000",
                    "$5,000–$15,000",
                    "$15,000–$50,000",
                    "$50,000–$100,000",
                    "Over $100,000",
                    "Not Sure",
                ],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "timeline",
                "label": "Timeline",
                "type": "select",
                "required": False,
                "options": ["ASAP", "Within Month", "Within 3 Months", "Within 6 Months", "Flexible"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "referral_source",
                "label": "How Did You Hear About Us",
                "type": "select",
                "required": False,
                "options": ["Google Search", "LinkedIn", "Referral", "Conference", "Advertisement", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "anything_else",
                "label": "Anything Else",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 18. Business Proposal Request (Consulting)
    {
        "slug": "business-proposal-request",
        "name": "Business Proposal Request",
        "description": "Request a tailored business proposal for strategy, operations, marketing, tech, or financial consulting.",
        "category": "Consulting",
        "is_featured": 0,
        "success_message": "Proposal request received! We'll prepare a customized proposal based on your requirements.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 255},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": True,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "company",
                "label": "Company",
                "type": "text",
                "required": True,
                "validation": {"maxLength": 200},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "service_type",
                "label": "Service Type",
                "type": "select",
                "required": True,
                "options": ["Strategy", "Operations", "Marketing", "Tech", "Financial", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "current_situation",
                "label": "Current Situation",
                "type": "textarea",
                "required": True,
                "validation": {"minLength": 10, "maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "desired_outcome",
                "label": "Desired Outcome",
                "type": "textarea",
                "required": True,
                "validation": {"minLength": 10, "maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "project_scope",
                "label": "Project Scope",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "timeline",
                "label": "Timeline",
                "type": "select",
                "required": False,
                "options": ["ASAP", "Within Month", "Within 3 Months", "Within 6 Months", "Flexible"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "budget_range",
                "label": "Budget Range",
                "type": "select",
                "required": False,
                "options": [
                    "Under $5,000",
                    "$5,000–$15,000",
                    "$15,000–$50,000",
                    "$50,000–$100,000",
                    "Over $100,000",
                    "Not Sure",
                ],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "decision_maker",
                "label": "Decision Maker",
                "type": "select",
                "required": True,
                "options": ["Yes", "No"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "competitors",
                "label": "Competitors to Consider",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 500},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
    # 19. IT Support Ticket (Consulting)
    {
        "slug": "it-support-ticket",
        "name": "IT Support Ticket",
        "description": "Submit a support ticket for hardware, software, network, or security issues.",
        "category": "Consulting",
        "is_featured": 0,
        "success_message": "Support ticket created! We'll review your issue and respond as soon as possible.",
        "field_config": [
            {
                "name": "name",
                "label": "Full Name",
                "type": "text",
                "required": True,
                "validation": {"minLength": 2, "maxLength": 100},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "email",
                "label": "Email Address",
                "type": "email",
                "required": True,
                "validation": {"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$", "maxLength": 255},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "phone",
                "label": "Phone Number",
                "type": "tel",
                "required": True,
                "validation": {"pattern": "^[\\d\\-\\+\\(\\)\\s]{7,20}$"},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "issue_type",
                "label": "Issue Type",
                "type": "select",
                "required": True,
                "options": ["Hardware", "Software", "Network", "Security", "Other"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "device_system",
                "label": "Device/System Affected",
                "type": "text",
                "required": True,
                "validation": {"maxLength": 200},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "error_message",
                "label": "Error Message",
                "type": "text",
                "required": False,
                "validation": {"maxLength": 500},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "steps_tried",
                "label": "Steps Already Tried",
                "type": "textarea",
                "required": False,
                "validation": {"maxLength": 1000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "urgency",
                "label": "Urgency",
                "type": "select",
                "required": True,
                "options": ["Critical", "High", "Medium", "Low"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "description",
                "label": "Description",
                "type": "textarea",
                "required": True,
                "validation": {"minLength": 10, "maxLength": 2000},
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "screenshots_needed",
                "label": "Screenshots Needed",
                "type": "select",
                "required": True,
                "options": ["Yes", "No"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
            {
                "name": "best_time_callback",
                "label": "Best Time to Call Back",
                "type": "select",
                "required": False,
                "options": ["Morning (8am-12pm)", "Afternoon (12pm-5pm)", "Evening (5pm-8pm)", "Any Time"],
                "condition": None,
                "calculation": None,
                "step": 1,
            },
        ],
    },
]