Overview
The Service model represents services and organizations available in the Dzaleka Refugee Camp. Services can include cultural organizations, educational institutions, healthcare facilities, and community services.
Schema Definition
The Service model is defined using Zod schema validation in src/content.config.ts:38-76.
TypeScript Type
type Service = {
title : string ;
description : string ;
category : string ;
featured ?: boolean ;
verified ?: boolean ;
logo ?: string ;
image ?: string ;
contact ?: {
email ?: string ;
phone ?: string ;
whatsapp ?: string ;
hours ?: string ;
};
location ?: {
address : string ;
city : string ;
coordinates ?: {
lat : number ;
lng : number ;
};
};
socialMedia ?: {
website ?: string ;
facebook ?: string ;
instagram ?: string ;
twitter ?: string ;
linkedin ?: string ;
};
tags ?: string [];
businessHours ?: Array <{
day : string ;
open : string ;
close : string ;
closed ?: boolean ;
}>;
lastUpdated ?: Date ;
status ?: 'active' | 'inactive' ;
};
Fields
Core Fields
The name of the service or organization.
A detailed description of the service, its mission, and what it offers to the community.
The category of service (e.g., “Cultural & Arts”, “Education”, “Healthcare”, “Community Services”).
Whether this service should be featured prominently on the platform. Defaults to false.
Indicates if the service has been verified by administrators.
Path to the service’s logo image (e.g., “/images/ayap.jpg”).
Path to a cover or promotional image for the service.
Current operational status of the service. Options: 'active' | 'inactive'. Defaults to 'active'.
Timestamp of when the service information was last updated.
Array of tags for categorization and searchability.
Contact phone number with country code (e.g., “+265 986 08 46 55”).
WhatsApp number for direct messaging.
General operating hours description.
Physical address of the service (e.g., “Dzaleka Refugee Camp”).
City or district (e.g., “Dowa”).
Latitude coordinate (e.g., -13.6628274).
Longitude coordinate (e.g., 33.8704301).
Facebook page or profile URL.
Business Hours
Array of objects defining operating hours for each day of the week. Day of the week (e.g., “Monday”, “Tuesday”).
Opening time (e.g., “09:00”).
Closing time (e.g., “17:00”).
Whether the service is closed on this day.
Example
Here’s a complete example of a Service object from the African Youth Artistic Poetry organization:
{
"title" : "African Youth Artistic Poetry - AYAP" ,
"category" : "Cultural & Arts" ,
"description" : "A collective empowering young refugees through spoken word poetry, fostering artistic expression and resilience in Dzaleka Refugee Camp." ,
"location" : {
"address" : "Dzaleka Refugee Camp" ,
"city" : "Dowa" ,
"coordinates" : {
"lat" : -13.6628274 ,
"lng" : 33.8704301
}
},
"contact" : {
"email" : "lipandamahigwe@gmail.com" ,
"phone" : "+265 986 08 46 55" ,
"hours" : ""
},
"socialMedia" : {
"facebook" : "https://www.facebook.com/profile.php?id=100094050495280" ,
"twitter" : "" ,
"instagram" : "" ,
"linkedin" : "" ,
"website" : ""
},
"logo" : "/images/ayap.jpg" ,
"featured" : false ,
"lastUpdated" : "2025-08-25T00:00:00.000Z" ,
"status" : "active"
}
Usage in Content
Services are stored as Markdown files in src/content/services/ with YAML frontmatter:
---
title : African Youth Artistic Poetry - AYAP
category : "Cultural & Arts"
description : A collective empowering young refugees through spoken word poetry...
location :
address : Dzaleka Refugee Camp
city : Dowa
coordinates :
lat : -13.6628274
lng : 33.8704301
contact :
email : 'lipandamahigwe@gmail.com'
phone : '+265 986 08 46 55'
logo : '/images/ayap.jpg'
featured : false
---
## About the Organization
Markdown content here...
Validation Rules
title, description, and category are required fields
status must be either 'active' or 'inactive'
Coordinates must be valid numbers representing latitude and longitude
Email addresses in contact information are not validated but should follow standard email format
URLs in social media fields should be complete URLs including protocol