isucon / isucon9-final

ISUCON9 本戦問題

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

予約API応答メモ

misodengaku opened this issue · comments

内容は仮なので好きにいじってください

request

2020年1月1日 のぞみ99号の4号車1番E席を取る場合

dateは要検討

{
    "date": "2020-01-01T08:00:00+09:00", 
    "train_class": "のぞみ",
    "train_name": "99号",
    "car_num": 4,
    "origin": "東京",
    "destination": "大阪",
    "seats": [
        {
            "row": 1,
            "column": "E"
        }
    ]
}

response

{
    "reservation_id": "123567890", 
    "あああああ": true
}

複数席同時に取れた方がいい

リクエストに支払い方法を追加する感じで

{
    "date": "2020-01-01T08:00:00+09:00", 
    "train_class": "のぞみ",
    "train_name": "99号",
    "car_num": 4,
    "origin": "東京",
    "destination": "大阪",
    "payment": "creditcard",
    "seats": [
        {
            "row": 1,
            "column": "E"
        }
    ]
}

ユーザIDも追加したく

{
    "date": "2020-01-01T08:00:00+09:00", 
    "train_class": "のぞみ",
    "train_name": "99号",
    "car_num": 4,
    "origin": "東京",
    "destination": "大阪",
    "user_id": 3,
    "payment": "creditcard",
    "seats": [
        {
            "row": 1,
            "column": "E"
        }
    ]
}

あいまい予約に対応する

datetimeをなんとかする

{
    "date": "2020-01-01T08:00:00+09:00", 
    "train_class": "のぞみ",
    "train_name": "99号",
    "car_num": 4,
    "seat_class": "reserved",
    "origin": "東京",
    "destination": "大阪",
    "user_id": 3,
    "payment": "creditcard",
    "child": 1,
    "adult": 1,
    "type": "isle",
    "seats": [
        {
            "row": 1,
            "column": "E"
        }
    ]
}
  • 足したkey

    • child: 子供の数
    • adult: 大人の数
    • seat_class: 座席クラス
    • type: 指定タイプ
      • seat: 座席完全指定
      • isle: 通路あいまい指定
      • window: 窓側あいまい指定
      • center: 真ん中あいまい指定
  • あいまい指定は適当な席を選び、前後二列を検索して並びで取れるかどうか判定する