EnuguRentindex.html4 matches
16<meta property="og:type" content="website">
17<meta property="og:url" content="https://enugu-rents.com">
18<meta property="og:image" content="https://enugu-rents.com/og-image.jpg">
19
20<!-- Twitter Card meta tags -->
21<meta name="twitter:card" content="summary_large_image">
22<meta name="twitter:title" content="Enugu Rents - Find Your Perfect Home in Enugu">
23<meta name="twitter:description" content="Find the perfect rental property in Enugu, Nigeria.">
24
25<!-- Favicon -->
26<link rel="icon" type="image/svg+xml" href="/frontend/favicon.svg">
27
28<!-- TailwindCSS -->
45
46.hero-pattern {
47background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
48}
49
EnuguRentlistings.ts2 matches
161legal_fee: body.legal_fee || 0,
162maintenance_fee: body.maintenance_fee || 0,
163images: body.images || []
164};
165
222'legal_fee', 'maintenance_fee', 'bedrooms', 'bathrooms',
223'has_kitchen', 'has_parking', 'has_security', 'power_supply',
224'furnishing', 'images'
225];
226
EnuguRentqueries.ts9 matches
110title, description, price, location, agent_fee, legal_fee, maintenance_fee,
111bedrooms, bathrooms, has_kitchen, has_parking, has_security, power_supply,
112furnishing, images, agent_id, agent_name, agent_phone, agent_email
113) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
114`, [
117listingData.bedrooms, listingData.bathrooms, listingData.has_kitchen,
118listingData.has_parking, listingData.has_security, listingData.power_supply,
119listingData.furnishing, JSON.stringify(listingData.images), listingData.agent_id,
120listingData.agent_name, listingData.agent_phone, listingData.agent_email
121]);
139if (result.rows.length > 0) {
140const listing = result.rows[0] as any;
141listing.images = JSON.parse(listing.images || '[]');
142return listing as PropertyListing;
143}
226
227const listings = listingsResult.rows.map((row: any) => {
228row.images = JSON.parse(row.images || '[]');
229return row as PropertyListing;
230});
259
260return result.rows.map((row: any) => {
261row.images = JSON.parse(row.images || '[]');
262return row as PropertyListing;
263});
277
278return result.rows.map((row: any) => {
279row.images = JSON.parse(row.images || '[]');
280return row as PropertyListing;
281});
289try {
290const updateFields = { ...updates };
291if (updateFields.images) {
292updateFields.images = JSON.stringify(updateFields.images) as any;
293}
294
460
461return result.rows.map((row: any) => {
462row.images = JSON.parse(row.images || '[]');
463return row as PropertyListing;
464});
EnuguRentmigrations.ts8 matches
59power_supply TEXT NOT NULL,
60furnishing TEXT NOT NULL,
61images TEXT, -- JSON array of image URLs
62agent_id INTEGER NOT NULL,
63agent_name TEXT NOT NULL,
216power_supply: '24/7 Power',
217furnishing: 'Semi Furnished',
218images: JSON.stringify([
219'https://picsum.photos/800/600?random=1',
220'https://picsum.photos/800/600?random=2',
242power_supply: 'Generator Backup',
243furnishing: 'Unfurnished',
244images: JSON.stringify([
245'https://picsum.photos/800/600?random=4',
246'https://picsum.photos/800/600?random=5'
267power_supply: 'Solar Power',
268furnishing: 'Fully Furnished',
269images: JSON.stringify([
270'https://picsum.photos/800/600?random=6',
271'https://picsum.photos/800/600?random=7',
294power_supply: 'PHCN Only',
295furnishing: 'Unfurnished',
296images: JSON.stringify([
297'https://picsum.photos/800/600?random=10',
298'https://picsum.photos/800/600?random=11'
319power_supply: 'Hybrid',
320furnishing: 'Semi Furnished',
321images: JSON.stringify([
322'https://picsum.photos/800/600?random=12',
323'https://picsum.photos/800/600?random=13',
338title, description, price, location, agent_fee, legal_fee, maintenance_fee,
339bedrooms, bathrooms, has_kitchen, has_parking, has_security, power_supply,
340furnishing, images, agent_id, agent_name, agent_phone, agent_email, is_featured
341) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
342`, [
344listing.agent_fee, listing.legal_fee, listing.maintenance_fee,
345listing.bedrooms, listing.bathrooms, listing.has_kitchen, listing.has_parking,
346listing.has_security, listing.power_supply, listing.furnishing, listing.images,
347listing.agent_id, listing.agent_name, listing.agent_phone, listing.agent_email,
348listing.is_featured
193}
194195// Generate random property images (placeholder)
196export function generatePlaceholderImages(count: number = 3): string[] {
197const images: string[] = [];
198for (let i = 1; i <= count; i++) {
199images.push(`https://picsum.photos/800/600?random=${Math.random()}`);
200}
201return images;
202}
26power_supply: PowerSupplyType;
27furnishing: FurnishingType;
28images: string[]; // Array of image URLs
29agent_id: number;
30agent_name: string;
147power_supply: PowerSupplyType;
148furnishing: FurnishingType;
149images: string[];
150}
151
8- **Property Listings**: Comprehensive rental listings with detailed information
9- **Advanced Search & Filters**: Location, price range, and feature-based filtering
10- **Property Details**: High-quality image galleries and detailed property information
11- **Live Chat System**: Connect renters with listing agents
12- **Mobile Responsive**: Optimized for all devices
98- Live chat with property agents
99- Advanced search and filtering
100- Property image galleries
101102## 🔐 Security
waho_pro_updatemain.tsx5 matches
167return (
168<div className="no-internet-container">
169<img src="https://i.postimg.cc/t4q16WRj/images.png" alt="No Internet" />
170<div className="no-internet-message">
171No internet connection
180}
181182function Slideshow({ images }) {
183useEffect(() => {
184let currentSlideIndex = 0;
234return (
235<div className="slideshow-container">
236{images.map((src, index) => (
237<img key={index} className={`mySlides ${index === 0 ? "visible" : ""}`} src={src} alt={`Slide ${index + 1}`} />
238))}
756}, []);
757758const slideshowImages = [
759"https://i.postimg.cc/KvSbQsgQ/download-4.png",
760"https://i.postimg.cc/NMzVyLRp/download-5.png",
825</div>
826</div>
827<Slideshow images={slideshowImages} />
828<Card {...loginCardData} />
829<Card {...scanCodeCardData} />
untitled-2689main.tsx5 matches
167return (
168<div className="no-internet-container">
169<img src="https://i.postimg.cc/t4q16WRj/images.png" alt="No Internet" />
170<div className="no-internet-message">
171No internet connection
180}
181182function Slideshow({ images }) {
183useEffect(() => {
184let currentSlideIndex = 0;
234return (
235<div className="slideshow-container">
236{images.map((src, index) => (
237<img key={index} className={`mySlides ${index === 0 ? "visible" : ""}`} src={src} alt={`Slide ${index + 1}`} />
238))}
756}, []);
757758const slideshowImages = [
759"https://i.postimg.cc/KvSbQsgQ/download-4.png",
760"https://i.postimg.cc/NMzVyLRp/download-5.png",
825</div>
826</div>
827<Slideshow images={slideshowImages} />
828<Card {...loginCardData} />
829<Card {...scanCodeCardData} />
townie-testingserveFile.md3 matches
46| `.js`, `.mjs` | `application/javascript` |
47| `.json` | `application/json` |
48| `.png` | `image/png` |
49| `.jpg`, `.jpeg` | `image/jpeg` |
50| `.svg` | `image/svg+xml` |
51| `.txt` | `text/plain` |
52| `.pdf` | `application/pdf` |