# 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.create_agent_sale_request import CreateAgentSaleRequest

class TestCreateAgentSaleRequest(unittest.TestCase):
    """CreateAgentSaleRequest unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> CreateAgentSaleRequest:
        """Test CreateAgentSaleRequest
            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 `CreateAgentSaleRequest`
        """
        model = CreateAgentSaleRequest()
        if include_optional:
            return CreateAgentSaleRequest(
                contract = trip_pay_payment.models.payable_contract_request.PayableContractRequest(
                    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', ), 
                    affiliate_account_identifier = '', 
                    affiliate_account_identifier_type = 'INTERNAL', 
                    display_currency = 'USD', 
                    contract_list = [
                        trip_pay_payment.models.payable_contract_supplier.PayableContractSupplier(
                            identifier = '', 
                            supplier_identifier = '', 
                            supplier_identifier_type = 'EXTERNAL', 
                            contract_item_list = [
                                trip_pay_payment.models.payable_contract_supplier_item.PayableContractSupplierItem(
                                    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 = '', ), 
                                    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.raw_daily_rate.RawDailyRate(
                                            date = 'Mon Aug 24 03:00:00 EEST 2020', 
                                            price = trip_pay_payment.models.custom_monetary_amount.CustomMonetaryAmount(
                                                amount = 1.337, 
                                                currency = '', ), )
                                        ], 
                                    metadata = {
                                        'key' : ''
                                        }, )
                                ], 
                            external_supplier_booking_code = 'external-booking-code-1', 
                            external_transaction_identifier = 'external-transaction-1', 
                            metadata = {
                                'key' : ''
                                }, )
                        ], 
                    trace_id = 'trace-1', 
                    redirect_url = '', 
                    source_url = '', 
                    metadata = , )
            )
        else:
            return CreateAgentSaleRequest(
                contract = trip_pay_payment.models.payable_contract_request.PayableContractRequest(
                    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', ), 
                    affiliate_account_identifier = '', 
                    affiliate_account_identifier_type = 'INTERNAL', 
                    display_currency = 'USD', 
                    contract_list = [
                        trip_pay_payment.models.payable_contract_supplier.PayableContractSupplier(
                            identifier = '', 
                            supplier_identifier = '', 
                            supplier_identifier_type = 'EXTERNAL', 
                            contract_item_list = [
                                trip_pay_payment.models.payable_contract_supplier_item.PayableContractSupplierItem(
                                    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 = '', ), 
                                    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.raw_daily_rate.RawDailyRate(
                                            date = 'Mon Aug 24 03:00:00 EEST 2020', 
                                            price = trip_pay_payment.models.custom_monetary_amount.CustomMonetaryAmount(
                                                amount = 1.337, 
                                                currency = '', ), )
                                        ], 
                                    metadata = {
                                        'key' : ''
                                        }, )
                                ], 
                            external_supplier_booking_code = 'external-booking-code-1', 
                            external_transaction_identifier = 'external-transaction-1', 
                            metadata = {
                                'key' : ''
                                }, )
                        ], 
                    trace_id = 'trace-1', 
                    redirect_url = '', 
                    source_url = '', 
                    metadata = , ),
        )
        """

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

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