ProgramListItem
| Field | Type | | Description |
id |
string |
required |
Firestore tour document id |
programNumber |
integer | null |
required |
Program number shown as "No. N" in the agency panel. Unique per agency, assigned once when the program is created and never reused or changed. Always present; null for older programs without an assigned number. Same value on list and detail. |
name |
string |
required |
|
status |
string |
required |
Stable public lifecycle. Publishable programs are always active. |
departureDate |
string | null |
optional |
Program start calendar date (YYYY-MM-DD, Europe/Istanbul) |
returnDate |
string | null |
optional |
Program end calendar date (YYYY-MM-DD, Europe/Istanbul) |
durationDays |
integer | null |
optional |
Inclusive calendar-day difference between departureDate and returnDate |
duration |
Duration |
optional |
Days and nights when both travel dates exist |
capacity |
Capacity |
required |
|
currency |
string | null |
optional |
|
category |
Category |
optional |
Display category |
prices |
Prices |
required |
|
ProgramDetail
ProgramListItem alanları artı:
| Field | Type | | Description |
description |
string | null |
optional |
Public program description |
category |
Category |
optional |
Display category |
departurePoint |
string | null |
optional |
Departure point text |
hotels |
array<HotelStay> |
optional |
Hotel stays on the program |
guides |
PublicGuides |
optional |
Public tanitim rehberleri (content.publicGuides). Operational staff is never exposed. |
marketingTags |
array | null |
optional |
Public marketing labels |
accommodation |
Accommodation |
optional |
Public stays plus accommodation description |
transport |
Transport |
optional |
Public airline brands used by the program |
media |
PublicMedia |
optional |
Public cover and gallery URLs |
content |
PublicContent |
optional |
Public included/excluded services, itinerary, visits, and FAQ |
Duration
| Field | Type | | Description |
days |
integer |
required |
Inclusive day count (same value as durationDays) |
nights |
integer |
required |
Night count, max(0, days - 1) |
PublicGuides
| Field | Type | | Description |
male |
PublicGuide |
optional |
|
female |
PublicGuide |
optional |
|
PublicGuide
| Field | Type | | Description |
name |
string |
optional |
Public guide display name |
title |
string | null |
optional |
Optional public title (e.g. Rehber, Hanim Rehber) |
photoUrl |
string | null |
optional |
Public photo URL from program tanitim content |
Accommodation
| Field | Type | | Description |
stays |
array<HotelStay> |
optional |
Public hotel stays including starLevel when available |
description |
string | null |
optional |
Public accommodation description |
Transport
| Field | Type | | Description |
flights |
array<ProgramFlight> |
optional |
Assigned round-trip flight packages with public airline branding and leg details |
AirlineBrand
| Field | Type | | Description |
code |
string |
required |
Public airline code |
name |
string | null |
optional |
Public airline display name when available |
logoUrl |
string | null |
optional |
Stable HTTPS URL for the airline SVG logo served from `https://sefera-api.web.app/v1/assets/airlines/{catalog-id}.svg` when the airline matches the Sefera canonical catalog (Turkish Airlines, AJet, Saudia, Pegasus). Returns `null` when the airline is unknown or no hosted logo exists — consumers must not render a broken image for `null`.
|
| Field | Type | | Description |
coverUrl |
string | null |
optional |
Public cover image URL |
galleryUrls |
array<string> |
optional |
Public gallery image URLs |
PublicContent
| Field | Type | | Description |
programDescription |
string | null |
optional |
Public program description (also mirrored at top-level description on detail) |
included |
array<string> |
optional |
Included services |
excluded |
array<string> |
optional |
Excluded services |
visits |
array<string> |
optional |
Public visit/place names |
accommodationDescription |
string | null |
optional |
Public accommodation description |
faq |
array<object> |
optional |
Public program FAQ |
itinerary |
array<object> |
optional |
Public itinerary. Raw dailyPlan is never published. |
ProgramListResponse
| Field | Type | | Description |
data |
array<ProgramListItem> |
required |
|
meta |
object |
required |
|
ProgramDetailResponse
| Field | Type | | Description |
data |
ProgramDetail |
required |
|