# coding: utf-8

"""
    Wink Payment API

    A programmatic way to create bookings, receive reactive and disburse funds globally.  ## APIs Not every integrator needs every APIs. For that reason, we have separated APIs into context.  - [Affiliate](/affiliate): All APIs related to selling travel inventory as an affiliate. - [Analytics](/analytics): All APIs related to tracking metrics across a wide variety of data source segments including, more entertaining, leaderboard metrics. - [Booking](/booking): All APIs related to creating platform bookings. - [Channel Manager](/channel-manager): All APIs related to channel managers who want to integrate with our platform. - [Extranet](/extranet): All APIs related to managing travel inventory and suppliers. - [Inventory](/inventory): All APIs related to retrieve known travel inventory as it was found using the Lookup API.. - [Lookup](/lookup): All APIs related to locating inventory by region, locale and property flags. - [Reference](/reference): All APIs related to retrieving platform-supported taxonomies. - [TripPay](/reactive): All APIs related to TripPay account management, booking, mapping and integration features.  ## SDKs We are actively working on supporting the most used languages out there. If you don't see your language here, reach out to us with a request to officially add your language. In the meantime, if you want to roll your own SDK, you can do so by downloading the OpenAPI spec and using one of the many available OpenAPI generators available: [https://openapi-generator.tech/docs/generators](https://openapi-generator.tech/docs/generators).  - Java SDK [https://github.com/wink-travel/trip-pay-sdk-java](https://github.com/wink-travel/trip-pay-sdk-java)  # Usage These features are made available to you via a [REST API](https://en.wikipedia.org/wiki/Representational_state_transfer). This API is language agnostic. We will link to SDKs for the most popular programming languages on this page as they become available.  ## Versioning We chose to version our endpoints in a way that we hope affects your integration with us the least. You request the version of our API you wish to work with via the `Wink-Version` header. When it's time for you to upgrade, you only have to change the version number to get access to our updated endpoints.  ## Release history - Follow updates on Github: https://github.com/wink-travel/wink-sdk-java/blob/master/CHANGELOG.md 

    The version of the OpenAPI document: 30.9.11
    Contact: bjorn@wink.travel
    Generated by OpenAPI Generator (https://openapi-generator.tech)

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


import unittest

from trip_pay_payment.models.payable_contract import PayableContract

class TestPayableContract(unittest.TestCase):
    """PayableContract unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> PayableContract:
        """Test PayableContract
            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 `PayableContract`
        """
        model = PayableContract()
        if include_optional:
            return PayableContract(
                id = 'doc-1',
                created_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                last_update = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
                version = 12,
                affiliate = trip_pay_payment.models.affiliate_information.AffiliateInformation(
                    affiliate_identifier = '', 
                    affiliate_name = 'My Affiliate', 
                    affiliate_url = 'https://www.my-affiliate.com', ),
                display_currency = 'USD',
                redirect_url = '',
                contract = trip_pay_payment.models.priced_supplier_contract_with_acquirer.PricedSupplierContractWithAcquirer(
                    federated_organization_identifier = 'owner-1', 
                    federated_organization_name = 'Wink', 
                    user = trip_pay_payment.models.authenticated_user.AuthenticatedUser(
                        user_identifier = '', 
                        first_name = 'John', 
                        last_name = 'Smith', 
                        email = 'john.smith@email.com', 
                        full_name = 'John Smith', ), 
                    ip_address = '111.222.333.444', 
                    trace_id = 'T-123456', 
                    source_url = 'https://www.traveliko.com', 
                    identifier = '', 
                    supplier_identifier = '', 
                    supplier_name = 'Supplier One', 
                    display_price_quote = trip_pay_payment.models.quote.Quote(
                        source = '', 
                        target = '', 
                        exchange_rate = 1.337, 
                        timestamp = 56, ), 
                    supplier_price_quote = trip_pay_payment.models.quote.Quote(
                        source = '', 
                        target = '', 
                        exchange_rate = 1.337, 
                        timestamp = 56, ), 
                    internal_price_quote = , 
                    capture_price_quote = , 
                    item_list = [
                        trip_pay_payment.models.priced_supplier_contract_item_with_acquirer.PricedSupplierContractItemWithAcquirer(
                            user = trip_pay_payment.models.guest_user.GuestUser(
                                user_identifier = '', 
                                first_name = 'John', 
                                last_name = 'Smith', 
                                email = 'john.smith@email.com', 
                                telephone = '+1 212 555 1212', 
                                profile = trip_pay_payment.models.profile.Profile(
                                    profile_identifier = '', 
                                    user_identifier = '', 
                                    share = True, 
                                    user = trip_pay_payment.models.profile_user.ProfileUser(
                                        first_name = 'Avid', 
                                        last_name = 'Travelman', 
                                        email = 'avid@travelman.com', 
                                        phone = '0123456789', 
                                        profile_picture_url = '', 
                                        full_name = 'John Smith', ), 
                                    personal = trip_pay_payment.models.personal.Personal(
                                        gender = 'MALE', 
                                        birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), 
                                        marital_status = 'ANNULLED', 
                                        child_quantity = 56, 
                                        citizenship = '', 
                                        address1 = '', 
                                        address2 = '', 
                                        city = '', 
                                        state = '', 
                                        postal_code = '', 
                                        country = '', 
                                        preferred_currency = 'USD', 
                                        language = '', 
                                        contact_person = [
                                            trip_pay_payment.models.contact.Contact(
                                                first_name = 'John', 
                                                last_name = 'Smith', 
                                                email = 'johnsmith@email.com', 
                                                secondary_email = 'johnsmith2@email.com', 
                                                phone_number = '+12125551212', 
                                                full_name = 'John Smith', 
                                                summary = 'John Smith (johnsmith@gmail.com / +12125551212)', )
                                            ], 
                                        phys_chall_name = [
                                            ''
                                            ], 
                                        pet_info = [
                                            trip_pay_payment.models.pet_info_dto.PetInfoDto(
                                                name = '', 
                                                type = '', )
                                            ], ), 
                                    preferences = trip_pay_payment.models.preferences.Preferences(
                                        property_location_pref = '', 
                                        property_type_pref = '', 
                                        hotel_chain_pref = '', 
                                        property_amenity_pref = [
                                            ''
                                            ], 
                                        recreation_srvc_pref = [
                                            ''
                                            ], 
                                        business_srvc_pref = [
                                            ''
                                            ], 
                                        security_feature_pref = [
                                            ''
                                            ], 
                                        phys_chal_feature_pref = [
                                            ''
                                            ], 
                                        smoking_allowed = True, 
                                        room_location_pref = '', 
                                        bed_type_pref = '', 
                                        food_srvc_pref = '', 
                                        room_amenity_pref = [
                                            ''
                                            ], 
                                        guest_type = '', 
                                        meal_pref = '', 
                                        cuisine_pref = '', 
                                        interest_pref = [
                                            ''
                                            ], 
                                        beverage_pref = [
                                            ''
                                            ], 
                                        food_pref = [
                                            ''
                                            ], 
                                        allergies = [
                                            ''
                                            ], 
                                        pets_pref = [
                                            ''
                                            ], ), ), 
                                full_name = 'John Smith', ), 
                            name_in_english = 'Deluxe King', 
                            description_in_english = 'This is the best deluxe king that money can buy.', 
                            price = trip_pay_payment.models.custom_monetary_amount.CustomMonetaryAmount(
                                amount = 1.337, 
                                currency = '', ), 
                            display_price = trip_pay_payment.models.custom_monetary_amount.CustomMonetaryAmount(
                                amount = 1.337, 
                                currency = '', ), 
                            supplier_price = , 
                            internal_price = , 
                            capture_price = , 
                            itinerary = trip_pay_payment.models.simple_date_time_itinerary.SimpleDateTimeItinerary(
                                start_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                end_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                adults = 0, 
                                children = 0, 
                                hours = 56, 
                                guests = 56, 
                                nights = 56, ), 
                            pricing_type = 'PER_STAY', 
                            type = 'LODGING', 
                            beneficiary_list = [
                                trip_pay_payment.models.payable_contract_supplier_item_beneficiary.PayableContractSupplierItemBeneficiary(
                                    identifier = 'account-1', 
                                    identifier_type = 'INTERNAL', 
                                    amount_due = trip_pay_payment.models.beneficiary_charge.BeneficiaryCharge(
                                        type = 'PERCENTAGE', 
                                        percent = 1.337, ), 
                                    type = 'COMMISSION', 
                                    metadata = {
                                        'key' : ''
                                        }, )
                                ], 
                            payable = 'PREPAY', 
                            policy = trip_pay_payment.models.supplier_contract_item_policy.SupplierContractItemPolicy(
                                refundable = True, 
                                advance_cancellation_free_of_charge = 'UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL', 
                                refundable_cancellation_charge = 'FIFTY_PERCENT', 
                                no_show_charge = 'SAME_AS_CANCELLATION_FEE', 
                                non_refundable_cancellation_charge = 'SEVENTY_PERCENT', 
                                non_refundable_deadline = 'SEVEN_DAYS_BEFORE_ARRIVAL', 
                                non_refundable_after_deadline_cancellation_charge = 'ONE_HUNDRED_PERCENT', 
                                external_identifier = 'policy-1', 
                                fully_refundable = True, 
                                partially_refundable = True, ), 
                            external_identifier = 'room-type-1', 
                            daily_rate_list = [
                                trip_pay_payment.models.daily_rate.DailyRate(
                                    date = 'Mon Aug 24 03:00:00 EEST 2020', 
                                    price = , 
                                    display_price = , 
                                    supplier_price = , 
                                    internal_price = , 
                                    capture_price = , )
                                ], 
                            metadata = {
                                'key' : ''
                                }, )
                        ], 
                    acquirer = [
                        trip_pay_payment.models.acquirer.Acquirer(
                            acquirer_id = 'acquirer-1', 
                            priority = 56, 
                            vendor = 'STRIPE', 
                            type = 'CREDIT_CARD', 
                            currency_code = 'GBP', 
                            credentials = [
                                trip_pay_payment.models.acquirer_credentials.AcquirerCredentials(
                                    type = 'TOKEN', 
                                    key1 = 'token-1', 
                                    key2 = 'token-2', )
                                ], 
                            webhook_secret = '', 
                            public_token = '', )
                        ], 
                    external_supplier_identifier = 'external-supplier-a', 
                    external_supplier_booking_code = 'external-booking-code-1', 
                    external_transaction_identifier = 'external-transaction-1', 
                    metadata = , 
                    total_price = , 
                    total_display_price = , 
                    total_supplier_price = , 
                    total_internal_price = , 
                    total_capture_price = , ),
                acquirer_list = [
                    trip_pay_payment.models.acquirer.Acquirer(
                        acquirer_id = 'acquirer-1', 
                        priority = 56, 
                        vendor = 'STRIPE', 
                        type = 'CREDIT_CARD', 
                        currency_code = 'GBP', 
                        credentials = [
                            trip_pay_payment.models.acquirer_credentials.AcquirerCredentials(
                                type = 'TOKEN', 
                                key1 = 'token-1', 
                                key2 = 'token-2', )
                            ], 
                        webhook_secret = '', 
                        public_token = '', )
                    ],
                metadata = {
                    'key' : ''
                    },
                instant = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f')
            )
        else:
            return PayableContract(
                affiliate = trip_pay_payment.models.affiliate_information.AffiliateInformation(
                    affiliate_identifier = '', 
                    affiliate_name = 'My Affiliate', 
                    affiliate_url = 'https://www.my-affiliate.com', ),
                display_currency = 'USD',
                redirect_url = '',
                contract = trip_pay_payment.models.priced_supplier_contract_with_acquirer.PricedSupplierContractWithAcquirer(
                    federated_organization_identifier = 'owner-1', 
                    federated_organization_name = 'Wink', 
                    user = trip_pay_payment.models.authenticated_user.AuthenticatedUser(
                        user_identifier = '', 
                        first_name = 'John', 
                        last_name = 'Smith', 
                        email = 'john.smith@email.com', 
                        full_name = 'John Smith', ), 
                    ip_address = '111.222.333.444', 
                    trace_id = 'T-123456', 
                    source_url = 'https://www.traveliko.com', 
                    identifier = '', 
                    supplier_identifier = '', 
                    supplier_name = 'Supplier One', 
                    display_price_quote = trip_pay_payment.models.quote.Quote(
                        source = '', 
                        target = '', 
                        exchange_rate = 1.337, 
                        timestamp = 56, ), 
                    supplier_price_quote = trip_pay_payment.models.quote.Quote(
                        source = '', 
                        target = '', 
                        exchange_rate = 1.337, 
                        timestamp = 56, ), 
                    internal_price_quote = , 
                    capture_price_quote = , 
                    item_list = [
                        trip_pay_payment.models.priced_supplier_contract_item_with_acquirer.PricedSupplierContractItemWithAcquirer(
                            user = trip_pay_payment.models.guest_user.GuestUser(
                                user_identifier = '', 
                                first_name = 'John', 
                                last_name = 'Smith', 
                                email = 'john.smith@email.com', 
                                telephone = '+1 212 555 1212', 
                                profile = trip_pay_payment.models.profile.Profile(
                                    profile_identifier = '', 
                                    user_identifier = '', 
                                    share = True, 
                                    user = trip_pay_payment.models.profile_user.ProfileUser(
                                        first_name = 'Avid', 
                                        last_name = 'Travelman', 
                                        email = 'avid@travelman.com', 
                                        phone = '0123456789', 
                                        profile_picture_url = '', 
                                        full_name = 'John Smith', ), 
                                    personal = trip_pay_payment.models.personal.Personal(
                                        gender = 'MALE', 
                                        birth_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), 
                                        marital_status = 'ANNULLED', 
                                        child_quantity = 56, 
                                        citizenship = '', 
                                        address1 = '', 
                                        address2 = '', 
                                        city = '', 
                                        state = '', 
                                        postal_code = '', 
                                        country = '', 
                                        preferred_currency = 'USD', 
                                        language = '', 
                                        contact_person = [
                                            trip_pay_payment.models.contact.Contact(
                                                first_name = 'John', 
                                                last_name = 'Smith', 
                                                email = 'johnsmith@email.com', 
                                                secondary_email = 'johnsmith2@email.com', 
                                                phone_number = '+12125551212', 
                                                full_name = 'John Smith', 
                                                summary = 'John Smith (johnsmith@gmail.com / +12125551212)', )
                                            ], 
                                        phys_chall_name = [
                                            ''
                                            ], 
                                        pet_info = [
                                            trip_pay_payment.models.pet_info_dto.PetInfoDto(
                                                name = '', 
                                                type = '', )
                                            ], ), 
                                    preferences = trip_pay_payment.models.preferences.Preferences(
                                        property_location_pref = '', 
                                        property_type_pref = '', 
                                        hotel_chain_pref = '', 
                                        property_amenity_pref = [
                                            ''
                                            ], 
                                        recreation_srvc_pref = [
                                            ''
                                            ], 
                                        business_srvc_pref = [
                                            ''
                                            ], 
                                        security_feature_pref = [
                                            ''
                                            ], 
                                        phys_chal_feature_pref = [
                                            ''
                                            ], 
                                        smoking_allowed = True, 
                                        room_location_pref = '', 
                                        bed_type_pref = '', 
                                        food_srvc_pref = '', 
                                        room_amenity_pref = [
                                            ''
                                            ], 
                                        guest_type = '', 
                                        meal_pref = '', 
                                        cuisine_pref = '', 
                                        interest_pref = [
                                            ''
                                            ], 
                                        beverage_pref = [
                                            ''
                                            ], 
                                        food_pref = [
                                            ''
                                            ], 
                                        allergies = [
                                            ''
                                            ], 
                                        pets_pref = [
                                            ''
                                            ], ), ), 
                                full_name = 'John Smith', ), 
                            name_in_english = 'Deluxe King', 
                            description_in_english = 'This is the best deluxe king that money can buy.', 
                            price = trip_pay_payment.models.custom_monetary_amount.CustomMonetaryAmount(
                                amount = 1.337, 
                                currency = '', ), 
                            display_price = trip_pay_payment.models.custom_monetary_amount.CustomMonetaryAmount(
                                amount = 1.337, 
                                currency = '', ), 
                            supplier_price = , 
                            internal_price = , 
                            capture_price = , 
                            itinerary = trip_pay_payment.models.simple_date_time_itinerary.SimpleDateTimeItinerary(
                                start_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                end_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                adults = 0, 
                                children = 0, 
                                hours = 56, 
                                guests = 56, 
                                nights = 56, ), 
                            pricing_type = 'PER_STAY', 
                            type = 'LODGING', 
                            beneficiary_list = [
                                trip_pay_payment.models.payable_contract_supplier_item_beneficiary.PayableContractSupplierItemBeneficiary(
                                    identifier = 'account-1', 
                                    identifier_type = 'INTERNAL', 
                                    amount_due = trip_pay_payment.models.beneficiary_charge.BeneficiaryCharge(
                                        type = 'PERCENTAGE', 
                                        percent = 1.337, ), 
                                    type = 'COMMISSION', 
                                    metadata = {
                                        'key' : ''
                                        }, )
                                ], 
                            payable = 'PREPAY', 
                            policy = trip_pay_payment.models.supplier_contract_item_policy.SupplierContractItemPolicy(
                                refundable = True, 
                                advance_cancellation_free_of_charge = 'UNTIL_EIGHTEEN_HUNDRED_HOURS_ON_DAY_OF_ARRIVAL', 
                                refundable_cancellation_charge = 'FIFTY_PERCENT', 
                                no_show_charge = 'SAME_AS_CANCELLATION_FEE', 
                                non_refundable_cancellation_charge = 'SEVENTY_PERCENT', 
                                non_refundable_deadline = 'SEVEN_DAYS_BEFORE_ARRIVAL', 
                                non_refundable_after_deadline_cancellation_charge = 'ONE_HUNDRED_PERCENT', 
                                external_identifier = 'policy-1', 
                                fully_refundable = True, 
                                partially_refundable = True, ), 
                            external_identifier = 'room-type-1', 
                            daily_rate_list = [
                                trip_pay_payment.models.daily_rate.DailyRate(
                                    date = 'Mon Aug 24 03:00:00 EEST 2020', 
                                    price = , 
                                    display_price = , 
                                    supplier_price = , 
                                    internal_price = , 
                                    capture_price = , )
                                ], 
                            metadata = {
                                'key' : ''
                                }, )
                        ], 
                    acquirer = [
                        trip_pay_payment.models.acquirer.Acquirer(
                            acquirer_id = 'acquirer-1', 
                            priority = 56, 
                            vendor = 'STRIPE', 
                            type = 'CREDIT_CARD', 
                            currency_code = 'GBP', 
                            credentials = [
                                trip_pay_payment.models.acquirer_credentials.AcquirerCredentials(
                                    type = 'TOKEN', 
                                    key1 = 'token-1', 
                                    key2 = 'token-2', )
                                ], 
                            webhook_secret = '', 
                            public_token = '', )
                        ], 
                    external_supplier_identifier = 'external-supplier-a', 
                    external_supplier_booking_code = 'external-booking-code-1', 
                    external_transaction_identifier = 'external-transaction-1', 
                    metadata = , 
                    total_price = , 
                    total_display_price = , 
                    total_supplier_price = , 
                    total_internal_price = , 
                    total_capture_price = , ),
                acquirer_list = [
                    trip_pay_payment.models.acquirer.Acquirer(
                        acquirer_id = 'acquirer-1', 
                        priority = 56, 
                        vendor = 'STRIPE', 
                        type = 'CREDIT_CARD', 
                        currency_code = 'GBP', 
                        credentials = [
                            trip_pay_payment.models.acquirer_credentials.AcquirerCredentials(
                                type = 'TOKEN', 
                                key1 = 'token-1', 
                                key2 = 'token-2', )
                            ], 
                        webhook_secret = '', 
                        public_token = '', )
                    ],
                instant = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'),
        )
        """

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

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