# 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.booking_contract_grid_response import BookingContractGridResponse

class TestBookingContractGridResponse(unittest.TestCase):
    """BookingContractGridResponse unit test stubs"""

    def setUp(self):
        pass

    def tearDown(self):
        pass

    def make_instance(self, include_optional) -> BookingContractGridResponse:
        """Test BookingContractGridResponse
            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 `BookingContractGridResponse`
        """
        model = BookingContractGridResponse()
        if include_optional:
            return BookingContractGridResponse(
                page = trip_pay_payment.models.page_booking_contract.PageBookingContract(
                    total_elements = 56, 
                    total_pages = 56, 
                    size = 56, 
                    content = [
                        trip_pay_payment.models.booking_contract.BookingContract(
                            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, 
                            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 = 'unique-supplier-booking-contract-1', 
                            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.booking_contract_item.BookingContractItem(
                                    supplier_item_booking_code = 'TP-ASDFG1234', 
                                    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.', 
                                    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.beneficiary.Beneficiary(
                                            account_identifier = 'account-1', 
                                            account_name = 'Account 1', 
                                            account_email = 'account@one.com', 
                                            account_url = 'https://some.url', 
                                            type = 'COMMISSION', 
                                            amount_due = trip_pay_payment.models.beneficiary_charge.BeneficiaryCharge(
                                                type = 'PERCENTAGE', 
                                                percent = 1.337, ), 
                                            source_currency = 'USD', 
                                            display_currency = 'USD', 
                                            supplier_currency = 'USD', 
                                            internal_currency = 'USD', 
                                            capture_currency = 'USD', 
                                            source_amount = 50, 
                                            display_amount = 50, 
                                            supplier_amount = 50, 
                                            internal_amount = 50, 
                                            capture_amount = 50, 
                                            source_amount_refund_modifier = 5, 
                                            display_amount_refund_modifier = 5, 
                                            supplier_amount_refund_modifier = 5, 
                                            internal_amount_refund_modifier = 5, 
                                            capture_amount_refund_modifier = 5, 
                                            pending_refunds = [
                                                trip_pay_payment.models.pending_refund.PendingRefund(
                                                    refund_identifier = 'refund-1', 
                                                    source_amount_refund_modifier = 5, 
                                                    display_amount_refund_modifier = 5, 
                                                    supplier_amount_refund_modifier = 5, 
                                                    internal_amount_refund_modifier = 5, 
                                                    capture_amount_refund_modifier = 5, )
                                                ], 
                                            net_source_amount = 0, 
                                            net_display_amount = 0, 
                                            net_supplier_amount = 0, 
                                            net_internal_amount = 0, 
                                            net_capture_amount = 0, 
                                            reconciled = False, 
                                            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', 
                                    tokens_earned = 12, 
                                    daily_rate_list = [
                                        trip_pay_payment.models.daily_rate.DailyRate(
                                            date = 'Mon Aug 24 03:00:00 EEST 2020', 
                                            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 = , )
                                        ], 
                                    cancelled = True, 
                                    source_currency = 'USD', 
                                    display_currency = 'USD', 
                                    supplier_currency = 'USD', 
                                    internal_currency = 'USD', 
                                    capture_currency = 'USD', 
                                    source_amount = 0, 
                                    display_amount = 0, 
                                    supplier_amount = 0, 
                                    internal_amount = 0, 
                                    capture_amount = 0, 
                                    source_amount_refund_modifier = 0, 
                                    display_amount_refund_modifier = 0, 
                                    supplier_amount_refund_modifier = 0, 
                                    internal_amount_refund_modifier = 0, 
                                    capture_amount_refund_modifier = 0, 
                                    net_source_amount = 0, 
                                    net_display_amount = 0, 
                                    net_supplier_amount = 0, 
                                    net_internal_amount = 0, 
                                    net_capture_amount = 0, 
                                    metadata = {
                                        'key' : ''
                                        }, 
                                    cancellable_by_traveler = True, 
                                    cancellable_by_supplier_or_agent = True, 
                                    cancellable_with_no_charges = True, 
                                    cancellable_with_potential_charges = True, )
                                ], 
                            external_supplier_identifier = 'supplier-a', 
                            external_supplier_booking_code = 'external-booking-code-1', 
                            payment = trip_pay_payment.models.booking_contract_payment_details.BookingContractPaymentDetails(
                                acquirer_identifier = 'stripe-world', 
                                vendor = 'STRIPE', 
                                transaction_identifier = 'tx-1', 
                                customer_identifier = 'customer-1', 
                                charge_identifier = 'charge-1', 
                                status = 'INITIALIZED', 
                                agent_invoiced_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                agent_invoice_identifier = 'invoice-1', 
                                redirect_url = '', 
                                fees = [
                                    trip_pay_payment.models.fee.Fee(
                                        identifier = 'ABC1234', 
                                        fee = , 
                                        type = 'ACQUIRING', 
                                        description = '', )
                                    ], 
                                vendor_specific = {
                                    'key' : ''
                                    }, ), 
                            cancelled = False, 
                            cancelled_on = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                            canceller = 'SALES_CHANNEL', 
                            cancellation_type = 'DUPLICATE', 
                            canceller_user_identifier = '', 
                            cancel_reason = '', 
                            funds_processed = False, 
                            refunds = [
                                trip_pay_payment.models.refund.Refund(
                                    identifier = 'refund-1', 
                                    acquirer_refund_identifier = 'r-123456', 
                                    requested_by_identifier = 'user-1', 
                                    refund = , 
                                    created = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                    description = 'Customer made a mistake', 
                                    reason_type = 'DUPLICATE', 
                                    cancel_on_refund = 'NONE', 
                                    status_type = 'SUCCEEDED', 
                                    request_type = 'BY_ADMIN', 
                                    request_status = 'APPROVED', 
                                    request_response = 'We have rejected your request. Your cancellation policy does not warrant a manual refund.', 
                                    receipt_url = 'https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xSXcxazVBQ3F2UW9nN1IxKIPqo54GMgbHKn45YQY6LBbCZ62655YzamuWDVeWAaw7uApCrxewxjSsZX4C9Lef5jY9JeYFrOVx3IaI', 
                                    retries = 0, 
                                    allocation = 'EQUAL_DISTRIBUTION', )
                                ], 
                            payouts = [
                                trip_pay_payment.models.payout.Payout(
                                    vendor = 'STRIPE', 
                                    vendor_identifier = '', 
                                    vendor_name = '', 
                                    ledger_identifier = '', 
                                    beneficiary_identifier = '', 
                                    external_payee_identifier = 'wise-recipient-1', 
                                    type = 'BANK_TRANSFER', 
                                    entry = , 
                                    quote = , 
                                    created = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                    description = 'Card created successfully', 
                                    payout_id = 'stripe-card-1', 
                                    reference_code = 'ABC1234', 
                                    reference_code_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                    status = 'SCHEDULED', )
                                ], 
                            source_currency = 'USD', 
                            display_currency = 'USD', 
                            supplier_currency = 'USD', 
                            internal_currency = 'USD', 
                            capture_currency = 'USD', 
                            source_amount = 0, 
                            display_amount = 0, 
                            supplier_amount = 0, 
                            internal_amount = 0, 
                            capture_amount = 0, 
                            source_amount_refund_modifier = 0, 
                            display_amount_refund_modifier = 0, 
                            supplier_amount_refund_modifier = 0, 
                            internal_amount_refund_modifier = 0, 
                            capture_amount_refund_modifier = 0, 
                            net_source_amount = 0, 
                            net_display_amount = 0, 
                            net_supplier_amount = 0, 
                            net_internal_amount = 0, 
                            net_capture_amount = 0, 
                            metadata = {
                                'key' : ''
                                }, 
                            net_commissionable_total_source_amount = , 
                            net_commissionable_total_capture_amount = , 
                            net_commissionable_total_display_amount = , 
                            net_commissionable_total_supplier_amount = , 
                            net_commissionable_total_internal_amount = , 
                            net_total_fees_and_commissions_source_amount = , 
                            net_total_fees_and_commissions_capture_amount = , 
                            net_total_fees_and_commissions_display_amount = , 
                            net_total_fees_and_commissions_supplier_amount = , 
                            net_total_fees_and_commissions_internal_amount = , 
                            net_total_fees_source_amount = , 
                            net_total_fees_capture_amount = , 
                            net_total_fees_display_amount = , 
                            net_total_fees_supplier_amount = , 
                            net_total_fees_internal_amount = , 
                            net_total_trip_pay_fee_source_amount = , 
                            net_total_trip_pay_fee_capture_amount = , 
                            net_total_trip_pay_fee_display_amount = , 
                            net_total_trip_pay_fee_supplier_amount = , 
                            net_total_trip_pay_fee_internal_amount = , 
                            net_total_sales_source_amount = , 
                            net_total_sales_capture_amount = , 
                            net_total_sales_display_amount = , 
                            net_total_sales_supplier_amount = , 
                            net_total_sales_internal_amount = , 
                            commissionable_total_source_amount = , 
                            commissionable_total_capture_amount = , 
                            commissionable_total_display_amount = , 
                            commissionable_total_supplier_amount = , 
                            commissionable_total_internal_amount = , 
                            total_fees_and_commissions_source_amount = , 
                            total_fees_and_commissions_capture_amount = , 
                            total_fees_and_commissions_display_amount = , 
                            total_fees_and_commissions_supplier_amount = , 
                            total_fees_and_commissions_internal_amount = , 
                            total_fees_source_amount = , 
                            total_fees_capture_amount = , 
                            total_fees_display_amount = , 
                            total_fees_supplier_amount = , 
                            total_fees_internal_amount = , 
                            total_trip_pay_fee_source_amount = , 
                            total_trip_pay_fee_capture_amount = , 
                            total_trip_pay_fee_display_amount = , 
                            total_trip_pay_fee_supplier_amount = , 
                            total_trip_pay_fee_internal_amount = , 
                            total_sales_source_amount = , 
                            total_sales_capture_amount = , 
                            total_sales_display_amount = , 
                            total_sales_supplier_amount = , 
                            total_sales_internal_amount = , 
                            funds_available_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), 
                            total_fees_in_percent_with_refund = 1.337, 
                            total_fees_in_percent = 1.337, 
                            total_trip_pay_fee_in_percent_with_refund = 1.337, 
                            total_trip_pay_fee_in_percent = 1.337, 
                            total_commissions_in_percent_with_refund = 1.337, 
                            total_commissions_in_percent = 1.337, 
                            total_fees_and_commissions_in_percent_with_refund = 1.337, 
                            total_fees_and_commissions_in_percent = 1.337, 
                            original_fees_in_percent = 1.337, 
                            original_commissions_in_percent = 1.337, 
                            net_total_customers_source_amount = , 
                            net_total_customers_capture_amount = , 
                            net_total_customers_display_amount = , 
                            net_total_customers_supplier_amount = , 
                            net_total_customers_internal_amount = , 
                            has_refunds = True, 
                            has_successful_refunds = True, 
                            has_pending_refunds = True, 
                            has_failed_refunds = True, 
                            platform_identifier = '', 
                            total_funds_grouped_by_beneficiary = [
                                trip_pay_payment.models.beneficiary.Beneficiary(
                                    account_identifier = 'account-1', 
                                    account_name = 'Account 1', 
                                    account_email = 'account@one.com', 
                                    account_url = 'https://some.url', 
                                    type = 'COMMISSION', 
                                    source_currency = 'USD', 
                                    display_currency = 'USD', 
                                    supplier_currency = 'USD', 
                                    internal_currency = 'USD', 
                                    capture_currency = 'USD', 
                                    source_amount = 50, 
                                    display_amount = 50, 
                                    supplier_amount = 50, 
                                    internal_amount = 50, 
                                    capture_amount = 50, 
                                    source_amount_refund_modifier = 5, 
                                    display_amount_refund_modifier = 5, 
                                    supplier_amount_refund_modifier = 5, 
                                    internal_amount_refund_modifier = 5, 
                                    capture_amount_refund_modifier = 5, 
                                    net_source_amount = 0, 
                                    net_display_amount = 0, 
                                    net_supplier_amount = 0, 
                                    net_internal_amount = 0, 
                                    net_capture_amount = 0, 
                                    reconciled = False, )
                                ], 
                            total_tokens_earned = 56, 
                            cancellable_by_traveler = True, 
                            cancellable_by_supplier_or_agent = True, 
                            cancellable_with_no_charges = True, 
                            cancellable_with_potential_charges = True, 
                            refunded = True, 
                            refundable = True, )
                        ], 
                    number = 56, 
                    sort = [
                        trip_pay_payment.models.sort_object.SortObject(
                            direction = '', 
                            null_handling = '', 
                            ascending = True, 
                            property = '', 
                            ignore_case = True, )
                        ], 
                    first = True, 
                    last = True, 
                    number_of_elements = 56, 
                    pageable = trip_pay_payment.models.pageable_object.PageableObject(
                        offset = 56, 
                        page_number = 56, 
                        page_size = 56, 
                        paged = True, 
                        unpaged = True, ), 
                    empty = True, ),
                total_funds = trip_pay_payment.models.total_aggregate_funds.TotalAggregateFunds(
                    source_currency = '', 
                    display_currency = '', 
                    supplier_currency = '', 
                    internal_currency = '', 
                    capture_currency = '', 
                    source_amount = 1.337, 
                    display_amount = 1.337, 
                    supplier_amount = 1.337, 
                    internal_amount = 1.337, 
                    capture_amount = 1.337, )
            )
        else:
            return BookingContractGridResponse(
                page = trip_pay_payment.models.page_booking_contract.PageBookingContract(
                    total_elements = 56, 
                    total_pages = 56, 
                    size = 56, 
                    content = [
                        trip_pay_payment.models.booking_contract.BookingContract(
                            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, 
                            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 = 'unique-supplier-booking-contract-1', 
                            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.booking_contract_item.BookingContractItem(
                                    supplier_item_booking_code = 'TP-ASDFG1234', 
                                    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.', 
                                    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.beneficiary.Beneficiary(
                                            account_identifier = 'account-1', 
                                            account_name = 'Account 1', 
                                            account_email = 'account@one.com', 
                                            account_url = 'https://some.url', 
                                            type = 'COMMISSION', 
                                            amount_due = trip_pay_payment.models.beneficiary_charge.BeneficiaryCharge(
                                                type = 'PERCENTAGE', 
                                                percent = 1.337, ), 
                                            source_currency = 'USD', 
                                            display_currency = 'USD', 
                                            supplier_currency = 'USD', 
                                            internal_currency = 'USD', 
                                            capture_currency = 'USD', 
                                            source_amount = 50, 
                                            display_amount = 50, 
                                            supplier_amount = 50, 
                                            internal_amount = 50, 
                                            capture_amount = 50, 
                                            source_amount_refund_modifier = 5, 
                                            display_amount_refund_modifier = 5, 
                                            supplier_amount_refund_modifier = 5, 
                                            internal_amount_refund_modifier = 5, 
                                            capture_amount_refund_modifier = 5, 
                                            pending_refunds = [
                                                trip_pay_payment.models.pending_refund.PendingRefund(
                                                    refund_identifier = 'refund-1', 
                                                    source_amount_refund_modifier = 5, 
                                                    display_amount_refund_modifier = 5, 
                                                    supplier_amount_refund_modifier = 5, 
                                                    internal_amount_refund_modifier = 5, 
                                                    capture_amount_refund_modifier = 5, )
                                                ], 
                                            net_source_amount = 0, 
                                            net_display_amount = 0, 
                                            net_supplier_amount = 0, 
                                            net_internal_amount = 0, 
                                            net_capture_amount = 0, 
                                            reconciled = False, 
                                            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', 
                                    tokens_earned = 12, 
                                    daily_rate_list = [
                                        trip_pay_payment.models.daily_rate.DailyRate(
                                            date = 'Mon Aug 24 03:00:00 EEST 2020', 
                                            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 = , )
                                        ], 
                                    cancelled = True, 
                                    source_currency = 'USD', 
                                    display_currency = 'USD', 
                                    supplier_currency = 'USD', 
                                    internal_currency = 'USD', 
                                    capture_currency = 'USD', 
                                    source_amount = 0, 
                                    display_amount = 0, 
                                    supplier_amount = 0, 
                                    internal_amount = 0, 
                                    capture_amount = 0, 
                                    source_amount_refund_modifier = 0, 
                                    display_amount_refund_modifier = 0, 
                                    supplier_amount_refund_modifier = 0, 
                                    internal_amount_refund_modifier = 0, 
                                    capture_amount_refund_modifier = 0, 
                                    net_source_amount = 0, 
                                    net_display_amount = 0, 
                                    net_supplier_amount = 0, 
                                    net_internal_amount = 0, 
                                    net_capture_amount = 0, 
                                    metadata = {
                                        'key' : ''
                                        }, 
                                    cancellable_by_traveler = True, 
                                    cancellable_by_supplier_or_agent = True, 
                                    cancellable_with_no_charges = True, 
                                    cancellable_with_potential_charges = True, )
                                ], 
                            external_supplier_identifier = 'supplier-a', 
                            external_supplier_booking_code = 'external-booking-code-1', 
                            payment = trip_pay_payment.models.booking_contract_payment_details.BookingContractPaymentDetails(
                                acquirer_identifier = 'stripe-world', 
                                vendor = 'STRIPE', 
                                transaction_identifier = 'tx-1', 
                                customer_identifier = 'customer-1', 
                                charge_identifier = 'charge-1', 
                                status = 'INITIALIZED', 
                                agent_invoiced_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                agent_invoice_identifier = 'invoice-1', 
                                redirect_url = '', 
                                fees = [
                                    trip_pay_payment.models.fee.Fee(
                                        identifier = 'ABC1234', 
                                        fee = , 
                                        type = 'ACQUIRING', 
                                        description = '', )
                                    ], 
                                vendor_specific = {
                                    'key' : ''
                                    }, ), 
                            cancelled = False, 
                            cancelled_on = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                            canceller = 'SALES_CHANNEL', 
                            cancellation_type = 'DUPLICATE', 
                            canceller_user_identifier = '', 
                            cancel_reason = '', 
                            funds_processed = False, 
                            refunds = [
                                trip_pay_payment.models.refund.Refund(
                                    identifier = 'refund-1', 
                                    acquirer_refund_identifier = 'r-123456', 
                                    requested_by_identifier = 'user-1', 
                                    refund = , 
                                    created = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                    description = 'Customer made a mistake', 
                                    reason_type = 'DUPLICATE', 
                                    cancel_on_refund = 'NONE', 
                                    status_type = 'SUCCEEDED', 
                                    request_type = 'BY_ADMIN', 
                                    request_status = 'APPROVED', 
                                    request_response = 'We have rejected your request. Your cancellation policy does not warrant a manual refund.', 
                                    receipt_url = 'https://pay.stripe.com/receipts/payment/CAcaFwoVYWNjdF8xSXcxazVBQ3F2UW9nN1IxKIPqo54GMgbHKn45YQY6LBbCZ62655YzamuWDVeWAaw7uApCrxewxjSsZX4C9Lef5jY9JeYFrOVx3IaI', 
                                    retries = 0, 
                                    allocation = 'EQUAL_DISTRIBUTION', )
                                ], 
                            payouts = [
                                trip_pay_payment.models.payout.Payout(
                                    vendor = 'STRIPE', 
                                    vendor_identifier = '', 
                                    vendor_name = '', 
                                    ledger_identifier = '', 
                                    beneficiary_identifier = '', 
                                    external_payee_identifier = 'wise-recipient-1', 
                                    type = 'BANK_TRANSFER', 
                                    entry = , 
                                    quote = , 
                                    created = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                    description = 'Card created successfully', 
                                    payout_id = 'stripe-card-1', 
                                    reference_code = 'ABC1234', 
                                    reference_code_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), 
                                    status = 'SCHEDULED', )
                                ], 
                            source_currency = 'USD', 
                            display_currency = 'USD', 
                            supplier_currency = 'USD', 
                            internal_currency = 'USD', 
                            capture_currency = 'USD', 
                            source_amount = 0, 
                            display_amount = 0, 
                            supplier_amount = 0, 
                            internal_amount = 0, 
                            capture_amount = 0, 
                            source_amount_refund_modifier = 0, 
                            display_amount_refund_modifier = 0, 
                            supplier_amount_refund_modifier = 0, 
                            internal_amount_refund_modifier = 0, 
                            capture_amount_refund_modifier = 0, 
                            net_source_amount = 0, 
                            net_display_amount = 0, 
                            net_supplier_amount = 0, 
                            net_internal_amount = 0, 
                            net_capture_amount = 0, 
                            metadata = {
                                'key' : ''
                                }, 
                            net_commissionable_total_source_amount = , 
                            net_commissionable_total_capture_amount = , 
                            net_commissionable_total_display_amount = , 
                            net_commissionable_total_supplier_amount = , 
                            net_commissionable_total_internal_amount = , 
                            net_total_fees_and_commissions_source_amount = , 
                            net_total_fees_and_commissions_capture_amount = , 
                            net_total_fees_and_commissions_display_amount = , 
                            net_total_fees_and_commissions_supplier_amount = , 
                            net_total_fees_and_commissions_internal_amount = , 
                            net_total_fees_source_amount = , 
                            net_total_fees_capture_amount = , 
                            net_total_fees_display_amount = , 
                            net_total_fees_supplier_amount = , 
                            net_total_fees_internal_amount = , 
                            net_total_trip_pay_fee_source_amount = , 
                            net_total_trip_pay_fee_capture_amount = , 
                            net_total_trip_pay_fee_display_amount = , 
                            net_total_trip_pay_fee_supplier_amount = , 
                            net_total_trip_pay_fee_internal_amount = , 
                            net_total_sales_source_amount = , 
                            net_total_sales_capture_amount = , 
                            net_total_sales_display_amount = , 
                            net_total_sales_supplier_amount = , 
                            net_total_sales_internal_amount = , 
                            commissionable_total_source_amount = , 
                            commissionable_total_capture_amount = , 
                            commissionable_total_display_amount = , 
                            commissionable_total_supplier_amount = , 
                            commissionable_total_internal_amount = , 
                            total_fees_and_commissions_source_amount = , 
                            total_fees_and_commissions_capture_amount = , 
                            total_fees_and_commissions_display_amount = , 
                            total_fees_and_commissions_supplier_amount = , 
                            total_fees_and_commissions_internal_amount = , 
                            total_fees_source_amount = , 
                            total_fees_capture_amount = , 
                            total_fees_display_amount = , 
                            total_fees_supplier_amount = , 
                            total_fees_internal_amount = , 
                            total_trip_pay_fee_source_amount = , 
                            total_trip_pay_fee_capture_amount = , 
                            total_trip_pay_fee_display_amount = , 
                            total_trip_pay_fee_supplier_amount = , 
                            total_trip_pay_fee_internal_amount = , 
                            total_sales_source_amount = , 
                            total_sales_capture_amount = , 
                            total_sales_display_amount = , 
                            total_sales_supplier_amount = , 
                            total_sales_internal_amount = , 
                            funds_available_date = datetime.datetime.strptime('1975-12-30', '%Y-%m-%d').date(), 
                            total_fees_in_percent_with_refund = 1.337, 
                            total_fees_in_percent = 1.337, 
                            total_trip_pay_fee_in_percent_with_refund = 1.337, 
                            total_trip_pay_fee_in_percent = 1.337, 
                            total_commissions_in_percent_with_refund = 1.337, 
                            total_commissions_in_percent = 1.337, 
                            total_fees_and_commissions_in_percent_with_refund = 1.337, 
                            total_fees_and_commissions_in_percent = 1.337, 
                            original_fees_in_percent = 1.337, 
                            original_commissions_in_percent = 1.337, 
                            net_total_customers_source_amount = , 
                            net_total_customers_capture_amount = , 
                            net_total_customers_display_amount = , 
                            net_total_customers_supplier_amount = , 
                            net_total_customers_internal_amount = , 
                            has_refunds = True, 
                            has_successful_refunds = True, 
                            has_pending_refunds = True, 
                            has_failed_refunds = True, 
                            platform_identifier = '', 
                            total_funds_grouped_by_beneficiary = [
                                trip_pay_payment.models.beneficiary.Beneficiary(
                                    account_identifier = 'account-1', 
                                    account_name = 'Account 1', 
                                    account_email = 'account@one.com', 
                                    account_url = 'https://some.url', 
                                    type = 'COMMISSION', 
                                    source_currency = 'USD', 
                                    display_currency = 'USD', 
                                    supplier_currency = 'USD', 
                                    internal_currency = 'USD', 
                                    capture_currency = 'USD', 
                                    source_amount = 50, 
                                    display_amount = 50, 
                                    supplier_amount = 50, 
                                    internal_amount = 50, 
                                    capture_amount = 50, 
                                    source_amount_refund_modifier = 5, 
                                    display_amount_refund_modifier = 5, 
                                    supplier_amount_refund_modifier = 5, 
                                    internal_amount_refund_modifier = 5, 
                                    capture_amount_refund_modifier = 5, 
                                    net_source_amount = 0, 
                                    net_display_amount = 0, 
                                    net_supplier_amount = 0, 
                                    net_internal_amount = 0, 
                                    net_capture_amount = 0, 
                                    reconciled = False, )
                                ], 
                            total_tokens_earned = 56, 
                            cancellable_by_traveler = True, 
                            cancellable_by_supplier_or_agent = True, 
                            cancellable_with_no_charges = True, 
                            cancellable_with_potential_charges = True, 
                            refunded = True, 
                            refundable = True, )
                        ], 
                    number = 56, 
                    sort = [
                        trip_pay_payment.models.sort_object.SortObject(
                            direction = '', 
                            null_handling = '', 
                            ascending = True, 
                            property = '', 
                            ignore_case = True, )
                        ], 
                    first = True, 
                    last = True, 
                    number_of_elements = 56, 
                    pageable = trip_pay_payment.models.pageable_object.PageableObject(
                        offset = 56, 
                        page_number = 56, 
                        page_size = 56, 
                        paged = True, 
                        unpaged = True, ), 
                    empty = True, ),
                total_funds = trip_pay_payment.models.total_aggregate_funds.TotalAggregateFunds(
                    source_currency = '', 
                    display_currency = '', 
                    supplier_currency = '', 
                    internal_currency = '', 
                    capture_currency = '', 
                    source_amount = 1.337, 
                    display_amount = 1.337, 
                    supplier_amount = 1.337, 
                    internal_amount = 1.337, 
                    capture_amount = 1.337, ),
        )
        """

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

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