Referință API¶
API-ul eProgramari reproduce toate funcționalitățile interfeței programari.gov.md, astfel încât sistemul informațional al unei instituții să poată găsi un serviciu, verifica intervalele libere și crea, confirma și anula programări.
- Cale de bază:
/api - Format: JSON
- Limbă: antetul opțional
x-custom-lang(roimplicit,ensauru) stabilește limba mesajelor de validare. Este acceptat de toate metodele.
Autentificare¶
API-ul folosește TLS mutual (mTLS): sistemul apelant prezintă certificatul de client la conectare și este identificat prin acesta.
- Certificatul trebuie înregistrat ca serviciu autorizat să apeleze API-ul. Dacă certificatul este înregistrat în MPass, administratorul MPass sau administratorul eProgramari îl adaugă ca serviciu autorizat.
- Pentru staging și producție se folosesc credențiale diferite — un certificat înregistrat pentru un mediu nu oferă acces la celălalt.
- O cerere de la un client care nu poate fi identificat primește răspunsul
401 Unauthorized; o cerere de la un client identificat, dar fără dreptul de a efectua operațiunea, primește403 Forbidden.
Pentru conectarea unei instituții, consultați pașii de conectare de pe pagina de prezentare generală.
Fluxul de programare¶
GET /v2/organizations/list— găsiți organizația.GET /v2/locations/list(saulist-by-idno) — găsiți locația acesteia.GET /v2/calendars/list— găsiți serviciul (calendarul) oferit la locație.GET /v2/calendars/config(sauconfig-by-idno) — citiți intervalele de lucru, sloturile ocupate și zilele libere.POST /v2/appointments/request— solicitați programarea. Aceasta este creată cu statusulWaitingsau directScheduled, dacăisEvoestetrue.PATCH /v2/appointments/{appointmentId}/confirm— confirmați-o (WaitingdevineScheduled).DELETE /v2/appointments/{appointmentId}/cancel— anulați-o, dacă este necesar.
Gestionarea erorilor¶
| Cod | Descriere |
|---|---|
| 200 | Succes |
| 204 | Fără conținut — nu a fost găsit nimic pentru criteriile furnizate |
| 400 | Parametri de intrare invalizi; detalii în mesajul răspunsului (AppointmentProblemDetails) |
| 401 | Neautorizat — clientul nu a putut fi identificat |
| 403 | Interzis — clientul nu are dreptul să efectueze această operațiune |
| 500 | A apărut o eroare neprevăzută (AppointmentProblemDetails) |
Statusul programării¶
Statusul este un număr. Valoarea 0 se folosește doar ca valoare de filtrare.
| Valoare | Status |
|---|---|
| 0 | None — toate statusurile (filtru implicit) |
| 1 | Waiting |
| 2 | Scheduled |
| 3 | Canceled |
| 4 | Finished |
| 5 | Rejected |
| 6 | Blocked |
| 7 | Absent |
Metode API¶
Programări (Appointments)¶
POST /v2/appointments/request
Rezumat
Creează o programare. Corpul cererii este o listă cu câte un element pentru fiecare cetățean. Fiecare element conține datele cetățeanului și serviciile (calendar locations) cu ora de început dorită. Programările sunt create cu statusul Waiting sau direct Scheduled, când isEvo este true.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Antet:
x-custom-lang(string, opțional) – limba mesajelor de validare:ro(implicit),ensauru
Corpul cererii (AppointmentRequestV2Model[]):
[
{
"isForeignCitizen": false,
"idnp": "2000000000000",
"firstName": "Ion",
"lastName": "Popescu",
"notifyUser": true,
"isEvo": false,
"email": "ion.popescu@example.com",
"phone": "+37360000000",
"residenceAddress": "mun. Chișinău, str. Exemplu 1",
"services": [
{
"calendarLocationId": "00000000-0000-0000-0000-000000000000",
"start": "2026-01-15T09:30:00+02:00"
}
]
}
]
Răspunsuri:
200 OK–SuccesAppointmentRequestModel– programare creată cu succes400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
DELETE /v2/appointments/{appointmentId}/cancel
Rezumat
Anulează o programare după id. Cetățeanul este notificat, cu excepția cazului în care notifyUser este false.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de rută:
appointmentId(uuid, obligatoriu) – id-ul programării
Parametri de interogare:
notifyUser(bool, opțional, implicit:true) – dacă cetățeanul este notificat despre anulare
Răspunsuri:
200 OK– programare anulată cu succes400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
PATCH /v2/appointments/{appointmentId}/confirm
Rezumat
Confirmă o programare după id. Statusul se schimbă din Waiting în Scheduled.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de rută:
appointmentId(uuid, obligatoriu) – id-ul programării
Răspunsuri:
200 OK– programare confirmată cu succes400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
GET /v2/appointments/list
Rezumat
Returnează o pagină de programări care corespund filtrelor.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
LocationRelatedIDNO(string, opțional) – IDNO al organizației care deține locațiaUserIdentifier(string, opțional) – IDNP sau numărul pașaportului cetățeanului care a făcut programareaServiceCode(string, opțional) – codul serviciuluiStart(date-time, opțional) – doar programările care încep la această dată sau dupăEnd(date-time, opțional) – doar programările care se încheie la această dată sau înainteStatus(int, opțional, implicit:0) – filtrare după statusul programării (vezi Statusul programării)PageSize(int, obligatoriu, implicit:10) – numărul de elemente pe paginăPageNumber(int, obligatoriu, implicit:0) – numărul paginii, începând de la zero
Răspunsuri:
200 OK–AppointmentsListResponseModelPaginationResponse204 No Content– nu au fost găsite programări400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
GET /v2/appointments/user-list
Rezumat
Returnează programările unui cetățean, găsit după IDNP, cu filtrare opțională după status și organizație.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
Idnp(string, obligatoriu) – IDNP al cetățeanului (13 cifre)PageSize(int, obligatoriu, implicit:10) – numărul de elemente pe paginăPageNumber(int, obligatoriu, implicit:0) – numărul paginii, începând de la zeroStatus(int, opțional, implicit:0) – filtrare după statusul programăriiOrganization(string, opțional) – filtrare după organizație
Răspunsuri:
200 OK–AppointmentsListResponseModel[]204 No Content– nu au fost găsite programări400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
GET /v2/appointments/user-list-updated
Rezumat
Returnează programările actualizate ale unui cetățean, găsit după IDNP.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
Idnp(string, obligatoriu) – IDNP al cetățeanului (13 cifre)PageSize(int, obligatoriu, implicit:10) – numărul de elemente pe paginăPageNumber(int, obligatoriu, implicit:0) – numărul paginii, începând de la zeroStatus(int, opțional, implicit:0) – filtrare după statusul programăriiOrganization(string, opțional) – ignorat de această metodă
Răspunsuri:
200 OK–AppointmentModel[]204 No Content– nu au fost găsite programări400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
GET /v2/appointments/location-list
Rezumat
Returnează programările unei locații, după id-ul locației. Rezultatul nu conține date despre cetățean.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
LocationId(uuid, obligatoriu) – id-ul locațieiPageSize(int, obligatoriu, implicit:10) – numărul de elemente pe paginăPageNumber(int, obligatoriu, implicit:0) – numărul paginii, începând de la zeroStatus(int, opțional, implicit:0) – filtrare după statusul programăriiOrganization(string, opțional) – nefolosit de această metodă
Răspunsuri:
200 OK–AppointmentPublicModel[]204 No Content– nu au fost găsite programări400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
GET /v2/appointments/calendar-location-list
Rezumat
Returnează programările unui calendar la o locație (un serviciu la o locație). Rezultatul nu conține date despre cetățean.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
CalendarLocationId(uuid, obligatoriu) – id-ul calendarului la locație (serviciul la o locație)PageSize(int, obligatoriu, implicit:10) – numărul de elemente pe paginăPageNumber(int, obligatoriu, implicit:0) – numărul paginii, începând de la zeroStatus(int, opțional, implicit:0) – filtrare după statusul programăriiOrganization(string, opțional) – nefolosit de această metodă
Răspunsuri:
200 OK–AppointmentPublicModel[]204 No Content– nu au fost găsite programări400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
Organizații (Organizations)¶
GET /v2/organizations/list
Rezumat
Returnează organizațiile care oferă servicii publice cu opțiune de programare.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Răspunsuri:
200 OK–OrganizationModel[]401 Unauthorized403 Forbidden500 Internal Server Error
Locații (Locations)¶
GET /v2/locations/list
Rezumat
Returnează o pagină de locații care aparțin unei organizații.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
OrganizationId(uuid, obligatoriu) – id-ul organizațieiPageSize(int, obligatoriu) – numărul de elemente pe pagină; fără valoare implicită, trimiteți-l întotdeaunaPageNumber(int, obligatoriu) – numărul paginii, începând de la zero; fără valoare implicită, trimiteți-l întotdeauna
Răspunsuri:
200 OK–LocationModelPaginationResponse204 No Content– nu au fost găsite locații400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
GET /v2/locations/list-by-idno
Rezumat
Returnează o pagină de locații care aparțin organizației cu IDNO-ul dat.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
Idno(string, obligatoriu) – IDNO al organizațieiPageSize(int, obligatoriu) – numărul de elemente pe pagină; fără valoare implicită, trimiteți-l întotdeaunaPageNumber(int, obligatoriu) – numărul paginii, începând de la zero; fără valoare implicită, trimiteți-l întotdeauna
Răspunsuri:
200 OK–LocationModelPaginationResponse204 No Content– nu au fost găsite locații400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
Calendare (Calendars)¶
GET /v2/calendars/list
Rezumat
Returnează serviciile (calendarele) oferite la o locație, de exemplu Pașaport, Servicii notariale, Document de călătorie de urgență.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
locationId(uuid, obligatoriu) – id-ul locației
Răspunsuri:
200 OK–CalendarInfo[]204 No Content– nu au fost găsite servicii pentru locație400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
GET /v2/calendars/config
Rezumat
Returnează configurația unui serviciu la o locație, inclusiv intervalele de lucru, zilele lucrătoare și zilele libere.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
calendarLocationId(uuid, obligatoriu) – id-ul calendarului la locație (serviciul la o locație)
Răspunsuri:
200 OK–CalendarLocationUiConfigModel204 No Content– nu a fost găsită nicio configurație400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
GET /v2/calendars/config-by-idno
Rezumat
Returnează configurația unui serviciu la o locație, găsită după IDNO-ul locației și codul serviciului.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
LocationIdno(string, obligatoriu) – IDNO al locațieiServiceCode(string, obligatoriu) – codul serviciului
Răspunsuri:
200 OK–CalendarLocationUiConfigModel204 No Content– nu a fost găsită nicio configurație400 Bad Request– parametri de intrare invalizi401 Unauthorized403 Forbidden500 Internal Server Error
Setări (Settings)¶
GET /v2/settings
Rezumat
Returnează setările unui calendar al unei organizații: zilele lucrătoare, sărbătorile și orele disponibile pentru confirmarea unei programări.
Autorizare
Necesită un client identificat și autorizat pentru această operațiune.
Parametri de interogare:
OrganizationId(uuid, obligatoriu) – id-ul organizațieiCalendarId(uuid, obligatoriu) – id-ul calendarului (serviciului)
Răspunsuri:
200 OK–SettingModel204 No Content– nu au fost găsite setări401 Unauthorized403 Forbidden500 Internal Server Error
Modele de date¶
Semnul ? de la sfârșit marchează un câmp care poate fi null, iar * un câmp obligatoriu.
Comune¶
ResourceDto — text în trei limbi.
| Câmp | Tip | Descriere |
|---|---|---|
ro |
string? | Română |
ru |
string? | Rusă |
en |
string? | Engleză |
SlotInfo — intervalul de timp al unei programări.
| Câmp | Tip | Descriere |
|---|---|---|
start |
date-time | Începutul intervalului, cu decalaj UTC |
end |
date-time | Sfârșitul intervalului, cu decalaj UTC |
AppointmentProblemDetails — eroare returnată împreună cu 400 și 500.
| Câmp | Tip | Descriere |
|---|---|---|
type |
string? | |
title |
string? | |
status |
int? | Cod de status HTTP |
detail |
string? | |
instance |
string? | |
errors |
object? |
Paginare — AppointmentsListResponseModelPaginationResponse și LocationModelPaginationResponse au aceeași structură.
| Câmp | Tip | Descriere |
|---|---|---|
items |
array | Elementele paginii curente (AppointmentsListResponseModel[] sau LocationModel[]) |
totalCount |
int | Numărul total de elemente care corespund cererii, pe toate paginile |
pageSize |
int | Numărul de elemente pe pagină |
currentPage |
int | Numărul paginii curente, începând de la zero |
totalPages |
int | Numărul total de pagini |
Crearea programărilor¶
AppointmentRequestV2Model — cerere de creare a programărilor pentru un cetățean, pentru unul sau mai multe servicii.
| Câmp | Tip | Descriere |
|---|---|---|
isForeignCitizen* |
bool | true pentru un cetățean străin; atunci passportNumber este obligatoriu în loc de idnp |
idnp |
string | IDNP al cetățeanului; obligatoriu când isForeignCitizen este false |
passportNumber |
string | Numărul pașaportului; obligatoriu când isForeignCitizen este true |
firstName* |
string | Prenumele (2–60 de caractere) |
lastName* |
string | Numele de familie (2–60 de caractere) |
notifyUser |
bool | Dacă cetățeanul este notificat prin e-mail; implicit true. Când este true, email este obligatoriu |
isEvo |
bool | Dacă este true, programarea este creată direct ca Scheduled, fără pasul de confirmare; implicit false |
email |
string | Adresa de e-mail a cetățeanului; obligatorie când notifyUser este true |
phone* |
string | Numărul de telefon al cetățeanului |
residenceAddress |
string? | Adresa de domiciliu (opțional) |
services* |
ServiceRequestV2[] |
Serviciile (calendar locations) și ora de început solicitată pentru fiecare |
ServiceRequestV2 — un serviciu solicitat la o anumită dată și oră.
| Câmp | Tip | Descriere |
|---|---|---|
calendarLocationId* |
uuid | Id-ul calendarului la locație (serviciul la o locație) de programat |
start* |
date-time | Începutul programării, cu decalaj UTC, de exemplu 2026-01-15T09:30:00+02:00 |
requestOptionId |
uuid? | Opțional. Id-ul opțiunii de cerere selectate, din RequestOptions din configurația serviciului (calendars/config) |
relatedOptionId |
uuid? | Opțional. Id-ul opțiunii asociate selectate, din RelatedOptions din configurația serviciului |
SuccesAppointmentRequestModel — rezultatul unei cereri de creare a programării.
| Câmp | Tip | Descriere |
|---|---|---|
userAccessToken |
string? | Token de acces emis persoanei. Toate programările persoanei sunt asociate acestui token, astfel încât pot fi găsite și modificate ulterior sau prezentate oricând este nevoie |
appointmentRequestResultModels |
AppointmentRequestResultModel[] |
Câte un element pentru fiecare serviciu solicitat |
AppointmentRequestResultModel — o programare creată.
| Câmp | Tip | Descriere |
|---|---|---|
id |
uuid | Id-ul programării create; folosiți-l pentru confirmare sau anulare |
userAccessToken |
string? | Token de acces emis persoanei. Toate programările persoanei sunt asociate acestui token, astfel încât pot fi găsite și modificate ulterior sau prezentate oricând este nevoie |
locationName |
ResourceDto |
Denumirea locației |
locationAddress |
string? | Adresa locației |
email |
string? | Adresa de e-mail la care se trimite notificarea |
calendarName |
ResourceDto |
Denumirea serviciului (calendarului) |
slotStart |
date-time | Începutul programării |
slotEnd |
date-time | Sfârșitul programării |
hoursUntilConfirmationDeadline |
int | Orele rămase pentru confirmarea programării înainte de expirare |
Citirea programărilor¶
AppointmentsListResponseModel — o programare, așa cum o returnează appointments/list și appointments/user-list.
| Câmp | Tip | Descriere |
|---|---|---|
id |
uuid | Id-ul unic al programării |
code |
string? | Codul programării |
userIdentifier |
string? | IDNP sau numărul pașaportului cetățeanului |
isForeignCitizen |
bool | true dacă cetățeanul este străin |
firstName |
string? | Prenumele cetățeanului |
lastName |
string? | Numele de familie al cetățeanului |
status |
int | Statusul programării |
serviceCode |
string? | Codul serviciului |
organization |
string? | Denumirea organizației |
slot |
SlotInfo |
Intervalul de timp |
calendar |
ResourceDto |
Calendarul (serviciul) |
service |
ResourceDto |
Serviciul |
calendarLocation |
ResourceDto |
Serviciul la o locație |
locationCoordinatesUrl |
string? | URL cu coordonatele locației pe hartă |
locationAddress |
string? | Adresa locației |
requestOption |
ResourceDto |
Opțiunea de cerere selectată |
relatedOption |
ResourceDto |
Opțiunea asociată selectată |
AppointmentPublicModel — datele publice ale unei programări, fără date despre cetățean.
| Câmp | Tip | Descriere |
|---|---|---|
id |
uuid? | Id-ul unic al programării |
code |
string? | Codul programării |
status |
int | Statusul programării |
slot |
SlotInfo |
Intervalul de timp |
calendar |
ResourceDto |
Calendarul (serviciul) |
service |
ResourceDto |
Serviciul |
calendarLocation |
ResourceDto |
Serviciul la o locație |
requestOption |
ResourceDto |
Opțiunea de cerere selectată |
relatedOption |
ResourceDto |
Opțiunea asociată selectată |
AppointmentModel — o programare cu detaliile serviciului, ale locației și ale participanților.
| Câmp | Tip | Descriere |
|---|---|---|
id |
uuid | Id-ul unic al programării |
code |
string? | Codul programării |
status |
int | Statusul programării |
comment, reason, notes |
string? | |
calendarId |
uuid? | Id-ul calendarului (serviciului) |
calendarName |
ResourceDto |
Denumirea calendarului |
serviceId |
uuid? | Id-ul serviciului |
serviceName, serviceDescription, serviceDocuments |
ResourceDto |
Denumirea, descrierea și documentele necesare ale serviciului |
calendarLocationId |
uuid? | Id-ul calendarului la locație (serviciul la o locație) |
calendarLocationName |
ResourceDto |
Denumirea serviciului la locație |
locationCoordinatesUrl |
string? | URL cu coordonatele locației pe hartă |
locationAddress |
string? | Adresa locației |
slotId |
uuid? | Id-ul slotului |
requestOptionId |
uuid? | Id-ul opțiunii de cerere selectate |
relatedOptionId |
uuid? | Id-ul opțiunii asociate selectate |
slot |
SlotInfo |
Intervalul de timp |
attendees |
AttendeeModel[] |
Cetățenii înregistrați la programare |
residenceAddress |
string? | Adresa de domiciliu a cetățeanului |
AttendeeModel — un cetățean înregistrat la o programare.
| Câmp | Tip |
|---|---|
id, appointmentId, calendarId, userId |
uuid? |
status |
int |
hasAttended |
bool |
passportNumber, indp, firstName, lastName, email, phone, residenceAddress |
string? |
Organizații, locații și servicii¶
OrganizationModel — o organizație care oferă servicii prin programări.
| Câmp | Tip | Descriere |
|---|---|---|
id |
uuid | Id-ul unic al organizației |
idno |
string? | IDNO al organizației |
code |
string? | Codul organizației |
homeAlias |
string? | |
name, title, subTitle, description, about |
ResourceDto |
Texte în trei limbi |
filterByLocation, filterByService |
bool | |
webPage |
string? | Pagina web a organizației |
faqId |
string? | |
type |
string? | |
isActive |
bool | false dacă organizația este dezactivată |
contact |
OrganizationContactModel |
Date de contact: fullAddress, phones[], email, locationUrl |
LocationModel — o locație în care o organizație primește cetățeni.
| Câmp | Tip | Descriere |
|---|---|---|
id |
uuid? | Id-ul unic al locației |
name, title, about* |
ResourceDto |
Texte în trei limbi |
webPage |
string? | Pagina web a locației |
phone, email |
string? | Contact |
relatedIDNO |
string? | |
capacity |
int | |
addressId |
uuid | |
organizationId* |
uuid | Id-ul organizației de care aparține locația |
country, region, locality, locationAddress |
string | Adresă |
coordinatesUrl* |
string | URL cu coordonatele pe hartă |
index |
string? | Cod poștal |
isActive |
bool | false dacă locația este dezactivată |
imageInfo |
ImageInfo |
data (base64) și mimeType |
counters |
LocationCounterDetailsModel[] |
Ghișee: id, name (ResourceDto), isActive |
CalendarInfo — un serviciu (calendar) disponibil la o locație.
| Câmp | Tip | Descriere |
|---|---|---|
name |
ResourceDto |
Denumirea serviciului |
calendarLocationId |
uuid | Id-ul calendarului la locație; folosiți-l la solicitarea unei programări |
CalendarLocationUiConfigModel — configurația necesară pentru programarea la un serviciu dintr-o locație.
| Câmp | Tip | Descriere |
|---|---|---|
calendarId |
uuid? | Id-ul calendarului |
calendarLocationId |
uuid? | Id-ul calendarului la locație; folosiți-l la solicitarea unei programări |
calendarName |
ResourceDto |
Denumirea serviciului |
startDate, endDate |
date-time? | Prima și ultima dată la care se pot face programări |
activeDays, appointmentActiveDays, appointmentsLimit |
int? | |
slotDuration |
int | Durata unui slot, în minute |
intervals |
WorkIntervalModel[] |
Intervale de lucru: id, start, end, appointmentsPerSlotLimit, workDays[] |
bookedSlots |
BookedSlot[] |
Sloturi care au deja programări: start, end, bookedCount |
fullyBookedDays |
date[] | Zile fără sloturi libere |
restrictions |
RestrictionsModel |
holidays[] și recoverableDaysOffs[] (dayOff, recovery) |
locationCapacity |
int? | |
locationId |
uuid | Id-ul locației |
organizationServiceDocuments |
OrganizationServiceDocumentModel[] |
Documente necesare per serviciu: calendarName, documents (ResourceDto) |
SettingModel — setările calendarului unei organizații.
| Câmp | Tip | Descriere |
|---|---|---|
organizationId |
uuid? | Id-ul organizației |
calendarId |
uuid? | Id-ul calendarului (serviciului) |
workDays |
int[] | Zile lucrătoare |
holidays |
date-time[] | Sărbători, când nu sunt disponibile programări |
recoverableDaysOffs |
RecoverableDaysOff[] |
dayOff, recovery |
workHours |
ConfigWorkHour[] |
start, end |
hoursUntilConfirmationDeadline |
int | Orele de care dispune cetățeanul pentru a confirma o programare înainte de expirare |