4.2.2 부킹 생성: 일정 등록하기
부킹 생성, 즉 일정은 가용한 타임슬롯을 선택한 후 예약 신청을 해서 등록합니다. 이 기능에는 다음 동작들이 있어야 합니다.
1. 타임슬롯을 선택할 때 가용 가능한지 검사: 캘린더 화면에서 타임슬롯을 선택할 때마다 해당 타임슬롯을 사용할 수 있는지 서버에 확인 요청합니다. 화면에는 가용 가능하다고 표시되어도 그 사이에 누군가 부킹하는 경우가 있기 때문입니다.
2. 부킹 생성할 때 중복 생성인지 검사: 부킹 생성할 때 동일 타임슬롯에 먼저 생성된 부킹이 있는 경우 중복 생성되지 않아야 합니다. 이는 구글 캘린더와 연동하는 경우도 염두에 두어야 합니다. 따라서 타임슬롯 자체로 중복 여부를 검사하지 않고 시간이 겹치는지 검사해야 합니다.
3. 일정 기간 이후에는 일정 신청 불가: 우리는 약속 잡기 서비스를 배포하여 출시합니다. 실제 서비스를 출시해서 운영해 보면 별의별 사람을 보게 됩니다. 누군가는 30년 후 일자에 부킹을 생성할지도 모릅니다. 따라서 호스트가 지정한 기간, 예를 들어 오늘 기준으로 30일 기간 안에서만 부킹 가능한 기능을 구현해야 합니다. 같은 맥락으로 과거 일자에 대해서는 부킹 생성하지 못하게 대응해야 하고요.