API: Create a New Fare

Request

Create a new fare with a POST request:

POST /fares

Request Body:


{
  "route_id": 1,
  "seat_plan_id": 1,
  "coach_type": 1,
  "seat_type": "Business Class",
  "from_date": "2024-01-01",
  "to_date": "2024-12-31",
  "amount": 1500,
  "status": 1
}
                

Sample Response:


{
  "status": "success",
  "message": "Fare created successfully",
  "data": {
    "data": {
      "id": 3,
      "route_id": 1,
      "start_id": 1,
      "end_id": 2,
      "start_name": "Dhaka",
      "end_name": "Chittagong",
      "distance": 244,
      "duration": "5:30",
      "route_status": 1,
      "seat_plan_id": 1,
      "seat_plan_name": "AC Business",
      "coach_type": 1,
      "seat_type": "Business Class",
      "from_date": "2024-01-01",
      "to_date": "2024-12-31",
      "amount": 1500,
      "status": 1,
      "created_by": 1,
      "updated_by": null,
      "created_at": "2024-01-15T12:00:00",
      "updated_at": "2024-01-15T12:00:00",
      "deleted_at": null
    }
  }
}
                

Validation Rules:

  • route_id - Required, must exist in routes table
  • seat_plan_id - Required, must exist in seat_plans table
  • coach_type - Required, integer, must be 1 (AC) or 2 (Non-AC)
  • seat_type - Required, string, must be one of: "Suite Class", "Business Class", "Sleeper", "Economy"
  • from_date - Optional, valid date format
  • to_date - Optional, valid date format, must be after or equal to from_date
  • amount - Required, integer, fare amount in the smallest currency unit
  • status - Optional, integer, must be 0 (inactive) or 1 (active), defaults to 1

Available Seat Types:

  • Suite Class - Premium luxury seating with maximum comfort
  • Business Class - High-quality seating with enhanced amenities
  • Sleeper - Reclining seats suitable for long journeys
  • Economy - Standard seating for budget-conscious travelers

Notes:

  • The response includes joined data from routes, districts, and seat_plans tables
  • Coach type: 1 = AC, 2 = Non-AC
  • Amount should be specified in the smallest currency unit (e.g., cents)
  • If dates are not provided, the fare will be valid indefinitely
  • Seat type determines the class and pricing tier of the fare