You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.3KB

  1. <?php
  2. namespace App\Http\Controllers\Web\Parking;
  3. use App\Http\Controllers\Web\WebController;
  4. use App\Models\ColumnName;
  5. use App\Models\HtpmsCustomer\Existing\DiscountTicket;
  6. use App\Models\HtpmsCustomer\Existing\Parking;
  7. use Illuminate\Http\JsonResponse;
  8. use Illuminate\Http\Request;
  9. class DiscountTicketListController extends WebController
  10. {
  11. public function name(): string
  12. {
  13. return "駐車場一覧取得";
  14. }
  15. public function description(): string
  16. {
  17. return "駐車場一覧を取得する";
  18. }
  19. public function __construct(protected DiscountTicketListParam $param)
  20. {
  21. parent::__construct();
  22. }
  23. protected function run(Request $request): JsonResponse
  24. {
  25. $param = $this->param;
  26. $parking = Parking::whereParkCode($param->parkingManagementCode)
  27. ->firstOrFail();
  28. $res = [
  29. "list" => DiscountTicket::getBuilder()
  30. ->where(DiscountTicket::COL_NAME_PARK_ID, $parking->id)
  31. ->select([
  32. sprintf("%s as %s", DiscountTicket::COL_NAME_DISCOUNT_TICKET_CODE, ColumnName::DISCOUNT_TICKET_CODE),
  33. sprintf("%s as %s", DiscountTicket::COL_NAME_TICKET_NAME, "ticket_name"),
  34. ])->get()
  35. ];
  36. return $this->successResponse($res);
  37. }
  38. }