Skip to main content

Core business logic for adventure staycation packages (trekking, hills staycation, jungle safari, lodging).

Project description

adventurestay-utils

Core business logic for adventure staycation experiences such as trekking, hills staycations, jungle safaris, and rustic lodging. The package centralizes package configuration, booking validation, availability checking, and price calculations so that multiple web or backend apps can share the same rules.

Installation

pip install adventurestay-utils

During local development inside this repo:

pip install -e .

Usage

from datetime import date
from adventurestay_utils import (
    AdventurePackage,
    PackageBookingValidator,
    PackageAvailabilityChecker,
    AdventurePriceCalculator,
    build_itinerary_summary,
    AdventureBooking,
)

package = AdventurePackage(
    package_id="JUNGLE001",
    category="JUNGLE_SAFARI",
    name="2N/3D Jungle Safari",
    location="Kanha",
    base_price_per_person=95.0,
    max_guests=8,
    min_nights=2,
    max_nights=4,
    includes_meals=True,
    includes_guide=True,
)

validator = PackageBookingValidator()
request = validator.create_booking_request(
    package, start_date=date(2025, 3, 10), end_date=date(2025, 3, 13), num_guests=4
)

availability_checker = PackageAvailabilityChecker()
availability_checker.check_availability(request, package, existing_bookings=[])

price = AdventurePriceCalculator().calculate_price(request, package)
booking = AdventureBooking(
    package=package,
    start_date=request.start_date,
    end_date=request.end_date,
    num_guests=request.num_guests,
    nights=(request.end_date - request.start_date).days,
    total_price=price,
)

print(build_itinerary_summary(booking))

Development

  1. Create/activate the provided .venv.

  2. Install dependencies: pip install -e .[dev].

  3. Run tests: python -m pytest.

  4. Build the package when ready for publishing:

    python -m pip install --upgrade build twine
    python -m build
    # twine upload dist/*   # requires credentials via environment variables
    

Features

  • Dataclass-based domain models for packages and bookings.
  • Validators for dates, guest counts, and package configuration.
  • Availability checker that prevents overlapping bookings beyond capacity.
  • Pricing calculator with weekend and peak-season multipliers.
  • Itinerary summary helper for emails and notifications.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adventurestay_u-0.1.0.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adventurestay_u-0.1.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file adventurestay_u-0.1.0.tar.gz.

File metadata

  • Download URL: adventurestay_u-0.1.0.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.24

File hashes

Hashes for adventurestay_u-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f7b651a26769c451e1b17679635e5c58527a47671cad12faa25d4477993dadbb
MD5 ce5d8d24111626904392bbe2cb478a4c
BLAKE2b-256 cee276cae463ffe3221258e6e865f3bf2f32bd8112055d120ef2bcb28fc1a415

See more details on using hashes here.

File details

Details for the file adventurestay_u-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for adventurestay_u-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d92fdadb235aab340c2e58788b066806f8f58e521e2e540d94f149821d0faa1b
MD5 3f7033b84117090b7dad93eaadb77888
BLAKE2b-256 c2363e84b1b6519bfd01628007dbef1d089e6e3e03258a263e20f7d330198987

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page