ui phase 5
This commit is contained in:
@@ -32,6 +32,8 @@ interface NurseSearchResultDto {
|
||||
nurseName: string | null;
|
||||
avatarUrl: string | null;
|
||||
distanceKm: number | null;
|
||||
/** REQ-040 (proposed) — not yet served; absent until the backend lands it. */
|
||||
topReviewTag?: string | null;
|
||||
}
|
||||
|
||||
/** The b6/b7 aggregated `NursePublicProfileDto` (REQ-012) — the C3 profile payload. */
|
||||
@@ -106,6 +108,7 @@ export const searchClientApi: SearchApi = {
|
||||
nurseGender: dto.nurseGender,
|
||||
cityId: dto.cityId,
|
||||
districtId: dto.districtId,
|
||||
topReviewTag: dto.topReviewTag ?? null,
|
||||
})),
|
||||
};
|
||||
},
|
||||
|
||||
@@ -16,7 +16,9 @@ interface ParamReader {
|
||||
|
||||
const GENDERS: readonly NurseGender[] = ['male', 'female'];
|
||||
|
||||
function parsePositiveInt(raw: string | null): number | undefined {
|
||||
/** Exported so callers that carry client-only params alongside the filter set (e.g. `province_id`,
|
||||
* a UI-only cascading-select prefill hint not part of `NurseSearchFilters`) can reuse the same parse. */
|
||||
export function parsePositiveInt(raw: string | null): number | undefined {
|
||||
if (raw == null) return undefined;
|
||||
const value = Number(raw);
|
||||
return Number.isInteger(value) && value > 0 ? value : undefined;
|
||||
|
||||
@@ -74,6 +74,9 @@ export interface NurseSearchResult {
|
||||
cityId: number;
|
||||
/** `null` = the nurse covers the whole city. */
|
||||
districtId: number | null;
|
||||
/** One-line top review tag (e.g. «منظم و دقیق») — optional, not yet served (REQ-040); `null`/absent
|
||||
* hides the card's review-tag line. */
|
||||
topReviewTag?: string | null;
|
||||
}
|
||||
|
||||
/** One offered variant on the C3 profile — the bookable unit; reused by the ServicePriceRow. */
|
||||
|
||||
Reference in New Issue
Block a user