電子チケットの販売代行WebアプリをBubbleで作る~5~
今回は、チケットのリセール、連番募集処理について書いていきたいと思います。
もう記事内容が、ほぼ現状の開発ペースに追いついたのでこれから先はリアルタイムな課題解決記事になりそうな予感がしています。
リセールで行いたい処理
1.「リセールチケット」というフィールドを作成する
2.作成したリセールチケットに手持ちのチケットの情報を反映する
3.「リセールチケットが出品されているイベント」というテーブルにリセールに出したチケットのイベントを追加する
1.は、チケットに「リセール中かどうか」というフィールドを作るよりもコピーのようなイメージで「リセールチケット」を作った方が運用が楽かなと思いこの方法にしました。
2.は単純に、コピーを作るイメージなので、対象のチケットと同じ情報を持たせる必要があります。
3.は、検索機能に関わることなのですが、検索結果としてはイベント単位で表示させたかったのでこの方法にしました。
検索ソースをリセールチケットそのものにしてしまうと同じイベントのものが溢れかえってしまうので、リセールチケットが1つでも作成されていたら、そのイベントを「リセールチケットが出品されているイベント」として登録する。という趣旨のテーブルです。
1.「リセールチケット」というフィールドを作成する
チケット詳細画面から「リセール」というボタンを押した際のワークフローとして、「Create a new thing」でリセールチケットを作成します。
この時、条件として
・「リセールチケット」テーブル内に"現在のページで扱っているチケット"と同じデータを持つリセールチケットが存在しない(Search forで絞込)
かつ
・その絞り込んだリセールチケットの"作成者"が"現在のアクティブユーザー"でない
というものを追加する必要がある。
でないと1つのチケットから何枚ものリセールチケットが量産されてしまう。
2.作成したリセールチケットに手持ちのチケットの情報を反映する
この作業はひたすらに「Make changes to」でリセールチケットに情報を与える作業です。
元チケットの情報はタイプを「チケット」にしたフィールドに追加するだけで大丈夫なのですが、リセールに伴い追加される情報(定価なのか?抽選なのか?など)を追加していきました。
3.「リセールチケットが出品されているイベント」というテーブルにリセールに出したチケットのイベントを追加する
そして最後に、「リセールチケットが出品されているイベント」(以後「Resail_Event」)に出品したチケットのイベントデータを追加するのですが。
問題が発生しました。
「Resail_Event」に格納するイベントデータの条件付けのやり方が分かりません。
私の目標として、「Resail_Event」に格納されるイベントデータは一意でなくてはなりません。
なので、「Resail_Event」にイベントデータを格納する際、
「Resail_Event」内に"リセールに出すチケットのイベント"がすでにある場合、イベントデータは「Resail_Event」に追加しない
という条件を追加したいのですが、やり方が分かりません…
とりあえず「Create a new」で「Resail_Event」のフィールド「Original_Event」にデータを追加としています。
その条件(Only when)にて、「Search for」を使い「Resail_Event」をサーチ。
こんな感じで、”OriginalEventを含まなければ作成する”みたいにしたつもりなのですが、エラー。
どうやら「yes/no」でまとめないといけないらしいです。
とりあえず行き詰ってしまったので、今回はここまで。
解決するか、他の機能を実装したらまた記事にしようと思います。
ちなみに、連番募集もリセールと全く同じやり方で実装しています。
僕の考えとして、リセールも連番募集も同じなんですよね。
では、ここまで読んでくださってありがとうございました。
この記事が気に入ったらサポートをしてみませんか?