Saat 21:00-da da tutan rezervasiyalar
Məkan proqramı konkret bir yerdən sınır. Günorta cədvəl qaydasındadır. Doqquzda eyni otağa iki qrup gəlir, içəridə artıq bir müştəri oturub, kassa isə heç vaxt bağlanmamış sessiyalarla uyğun gəlmir.
Cədvəllərin və WhatsApp yazışmalarının konflikt modeli yoxdur — sadəcə optimizmi var. Heselo ona görə var ki, rezervasiya, canlı sessiya və ödəniş üç ayrı tətbiq deyil, eyni əməliyyat faktının üç halıdır.
Əhəmiyyət daşıyan hallar
- Rezerv edilib: resurs müəyyən vaxt aralığı üçün vəd olunub. Başqa rezervasiya onu səssizcə götürə bilməz.
- Canlı: qonaq buradadır. Vaxt işləyir. Məhsul əlavə oluna bilər.
- Bağlanıb: sessiyanın məbləği, ödəniş növü və aid olduğu növbəsi var.
Bu hallar data modelində açıq göstərilməyibsə, onları interfeys uyduracaq. Operatorlar sistemin sabah bərpa edə bilməyəcəyi şəkildə “sadəcə yerini dəyişəcək”. Məkanda tarixçə xoş bir əlavə deyil — kassanı məhz onunla izah edirsən.
Ağıllı həlldən əvvəl düzgünlük
Mənim üçün zahirən darıxdırıcı hissələr önəmlidir: kəsişən intervallar, qorunan keçmiş günlər, növbətiyə qarışmayan kassa növbəsi və pulu yenidən yazan əməliyyatlar üçün təsdiq kodu. Bu məntiqi Java və Spring Boot-da saxlamaq rahatdır, çünki rezervasiya konfliktini servisdə test etmək frontend-in bunu yadda saxlayacağına ümid etməkdən asandır.
İnsanların həqiqətən istifadə etdiyi məhsul qarışıq bir gecədən sonra da doğrunu deyən məhsuldur. Ölçü budur.