# 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.credit_balance import CreditBalance

class TestCreditBalance(unittest.TestCase):
    """CreditBalance unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> CreditBalance:
        """Test CreditBalance
            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 `CreditBalance`
        """
        model = CreditBalance()
        if include_optional:
            return CreditBalance(
                success = True,
                balance = rankvectors.models.credit_balance_info.CreditBalanceInfo(
                    project_id = 'proj-123', 
                    credits_total = 100, 
                    credits_used = 25.5, 
                    credits_remaining = 74.5, 
                    last_reset_at = '2025-01-01T00:00Z', ),
                page_limit = rankvectors.models.page_limit_status.PageLimitStatus(
                    limit = 1000, 
                    used = 150, 
                    remaining = 850, ),
                spending_limit = rankvectors.models.spending_limit_status.SpendingLimitStatus(
                    enabled = True, 
                    limit = 100, 
                    used = 25.5, 
                    remaining = 74.5, ),
                auto_recharge = rankvectors.models.auto_recharge_settings.AutoRechargeSettings(
                    enabled = False, 
                    threshold = 10, 
                    amount = 500, ),
                current_period = rankvectors.models.period_charges.PeriodCharges(
                    start_date = '2025-01-01T00:00Z', 
                    end_date = '2025-01-31T23:59:59Z', 
                    total_charges = 25.5, ),
                usage_history = [
                    rankvectors.models.usage_history_item.UsageHistoryItem(
                        id = 'usage-1', 
                        action = 'link_implemented', 
                        credits_used = 1, 
                        created_at = '2025-01-15T10:00Z', 
                        metadata = {"suggestionId":"sugg-123","implementationId":"impl-123"}, )
                    ]
            )
        else:
            return CreditBalance(
                success = True,
                balance = rankvectors.models.credit_balance_info.CreditBalanceInfo(
                    project_id = 'proj-123', 
                    credits_total = 100, 
                    credits_used = 25.5, 
                    credits_remaining = 74.5, 
                    last_reset_at = '2025-01-01T00:00Z', ),
                page_limit = rankvectors.models.page_limit_status.PageLimitStatus(
                    limit = 1000, 
                    used = 150, 
                    remaining = 850, ),
                spending_limit = rankvectors.models.spending_limit_status.SpendingLimitStatus(
                    enabled = True, 
                    limit = 100, 
                    used = 25.5, 
                    remaining = 74.5, ),
                auto_recharge = rankvectors.models.auto_recharge_settings.AutoRechargeSettings(
                    enabled = False, 
                    threshold = 10, 
                    amount = 500, ),
                current_period = rankvectors.models.period_charges.PeriodCharges(
                    start_date = '2025-01-01T00:00Z', 
                    end_date = '2025-01-31T23:59:59Z', 
                    total_charges = 25.5, ),
        )
        """

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

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