# coding: utf-8

"""
    RankVectors API

    Intelligent internal linking optimization API using AI.   RankVectors helps you automatically discover and implement optimal internal links  across your website to improve SEO performance and user experience.  ## Key Features - **AI-Powered Analysis**: Uses OpenAI embeddings to find optimal linking opportunities - **Smart Crawling**: Automatically crawls and analyzes your website content - **Automated Implementation**: Implement links via webhooks or manual instructions - **Credit-Based System**: Pay-per-use model with transparent pricing - **Multi-Platform Support**: Works with any CMS or platform via REST API  ## Getting Started 1. Create a project with your website URL 2. Start a crawl to analyze your content 3. Generate AI-powered link suggestions 4. Implement suggestions via API or webhook 5. Track performance and manage credits  ## Authentication All API endpoints require authentication using your RankVectors API key. Include your API key in the `Authorization` header: ``` Authorization: Bearer YOUR_API_KEY ```  Get your API key from your RankVectors dashboard: Settings → API Keys 

    The version of the OpenAPI document: 1.2.0
    Contact: tj@rankvectors.com
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


import unittest

from rankvectors.com.rankvectors.model.project import Project

class TestProject(unittest.TestCase):
    """Project unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> Project:
        """Test Project
            include_optional is a boolean, when False only required
            params are included, when True both required and
            optional params are included """
        # uncomment below to create an instance of `Project`
        """
        model = Project()
        if include_optional:
            return Project(
                id = 'proj-123',
                name = 'My Website',
                domain = 'https://example.com',
                user_id = 'user-456',
                prompt = 'Only crawl blog posts and documentation',
                search_query = 'SEO optimization',
                sitemap_mode = 'include',
                include_subdomains = True,
                ignore_query_params = True,
                max_discovery_depth = 3,
                exclude_paths = ["/admin","/private"],
                include_paths = ["/blog","/docs"],
                crawl_entire_domain = False,
                allow_external_links = False,
                max_pages = 100,
                crawl_delay = 1000,
                crawl_max_concurrency = 5,
                only_main_content = True,
                custom_headers = {
                    'key' : ''
                    },
                wait_for = 0,
                block_ads = True,
                proxy_mode = 'auto',
                use_reranking = True,
                enable_change_tracking = False,
                created_at = '2025-01-15T10:00Z',
                updated_at = '2025-01-15T10:00Z',
                count = rankvectors.models.project__count.Project__count(
                    pages = 150, 
                    suggestions = 25, )
            )
        else:
            return Project(
                id = 'proj-123',
                name = 'My Website',
                domain = 'https://example.com',
                user_id = 'user-456',
                created_at = '2025-01-15T10:00Z',
                updated_at = '2025-01-15T10:00Z',
        )
        """

    def testProject(self):
        """Test Project"""
        # inst_req_only = self.make_instance(include_optional=False)
        # inst_req_and_optional = self.make_instance(include_optional=True)

if __name__ == '__main__':
    unittest.main()
