PostgreSQL üzerinde 22 tablo + 16 enum. SRS V5'teki tüm tablolar korunmuş; eksik kalan iş atama, sefer, bildirim, abonelik ve misafir ilan yapıları tamamlanmıştır. Çalıştırılabilir şema: db/schema.sql
company_type ile otel/acente/tur operatörü ayrımı (kontrol #2).pricing_type (SABIT_FIYAT / TEKLIF_TOPLA), dinamik alanlar JSONB, waypoints, scheduled_at + tekrar günleri.offered_price teklif yarışını taşır.file_expires_at poliçe/psikoteknik bitiş takibi.is_masked ile onay öncesi kimlik gizleme (SRS 10.3).psp_reference Iyzico/PayTR mutabakatı için.postings_used ile takip edilir.PENDING_PAYMENT → PENDING_MODERATION → PUBLISHED (→ EXPIRED / REJECTED).converted_firm_id ile ilgili firmaya devredilir → CONVERted.| SRS Bölümü | Karşılanan Tablolar | Not |
|---|---|---|
| 3. Rolleri & Evraklar | users, firms, drivers, vehicles, documents | Belge tipleri enum; bitiş tarihleri file_expires_at |
| 4. İlan & Filtreleme | job_postings, vehicle_job_types | Dinamik alanlar dynamic_fields JSONB'de |
| 5. Mobil Altyapı | user_devices, job_assignments(qr_code), trips | GPS konumu Redis'te; QR atamada |
| 6. Çekirdek ER | users, firms, vehicles, documents, job_postings, job_applications, user_devices | SRS'in kendi tabloları aynen korundu |
| 7. Reklam | ad_zones, advertisements, ad_metrics | Aynen korundu |
| 8. Cüzdan | wallets, wallet_transactions, pricing_config | psp_reference ile sağlayıcı bağımsız |
| 10.1 Puanlama | reviews (+ users.rating_avg) | Rozetler rating eşiğinden hesaplanır |
| 10.2 Ters İhale | job_postings.pricing_type, job_applications.offered_price | ALTER TABLE yerine kalıcı kolon |
| 10.3 Mesajlaşma | chats, messages (+is_masked) | Maskeleme kolonu eklendi |
| 10.4 Takip & SOS | trips, sos_alerts | Canlı konum Redis, SOS DB |
| 10.5 Rota | job_postings.route_waypoints, route_distance_km | Mesafe API'den hesaplanıp yazılır |
| 1.1 Abonelik | subscriptions | SRS'te tablo yoktu → eklendi |
| Faz 2 · Üyeliksiz ilan | guest_postings | SRS dışı talep → tasarım yeni tabloyla karşılandı |