Initial commit — AsadiTools v1.0
Full ASP.NET Core 10 Razor Pages app for آساد ابزار tool repair shop in Karaj, Iran (official DeWalt representative). Features: - Homepage, Services, DeWalt page, Shop (pagination + images) - 10 brand SEO pages (/brands/*) with rich Persian content + FAQ schema - Blog engine with admin management (/blog, /Admin/Blog) - Cart, Checkout, Contact (OpenStreetMap embed) - Admin panel: Products CRUD, Orders, Blog, Change Password - Jalali date formatting, product images, SiteData centralised contact - Docker + docker-compose with healthcheck - Gitea CI/CD via .gitea/workflows/ci-cd.yml (NuGet through Nexus mirror) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,318 @@
|
||||
@page
|
||||
@model AsadiTools.Pages.IndexModel
|
||||
@{
|
||||
ViewData["Title"] = "آساد ابزار - نمایندگی رسمی دیوالت در کرج";
|
||||
ViewData["Description"] = "نمایندگی رسمی دیوالت، ماکیتا، رونیکس، توسن و بلک اند دکر در کرج. تعمیر دریل، فرز، مینی فرز، شمشاد زن و بتن کن با ضمانت.";
|
||||
Layout = "_Layout";
|
||||
}
|
||||
|
||||
@section Head {
|
||||
<script type="application/ld+json">
|
||||
{"@@context":"https://schema.org","@@type":"LocalBusiness","name":"آساد ابزار کرج","image":"https://images.unsplash.com/photo-1504148455328-c376907d081c?w=800","telephone":"+98@SiteData.Company.TelPhone.Substring(1)","address":{"@@type":"PostalAddress","streetAddress":"@SiteData.Company.Address","addressLocality":"کرج","addressRegion":"البرز","postalCode":"31489","addressCountry":"IR"},"openingHours":"Mo-Sa 08:00-18:00","priceRange":"$$","sameAs":["https://instagram.com/@SiteData.Company.Instagram"]}
|
||||
</script>
|
||||
}
|
||||
|
||||
<!-- ═══════════════════════════════ HERO ═══════════════════════════════════ -->
|
||||
<section class="relative text-white overflow-hidden" style="min-height:580px">
|
||||
<!-- Background image with overlay -->
|
||||
<div class="absolute inset-0 bg-cover bg-center bg-no-repeat"
|
||||
style="background-image:url('https://images.unsplash.com/photo-1504148455328-c376907d081c?w=1400&q=80&auto=format&fit=crop')"></div>
|
||||
<div class="absolute inset-0 bg-gradient-to-l from-blue-900/95 via-blue-900/85 to-blue-800/70"></div>
|
||||
|
||||
<div class="relative max-w-6xl mx-auto px-4 py-20 grid md:grid-cols-2 gap-12 items-center">
|
||||
<!-- Text -->
|
||||
<div>
|
||||
<div class="inline-flex items-center gap-2 bg-yellow-400 text-gray-900 text-sm font-bold px-4 py-1.5 rounded-full mb-5 shadow-lg">
|
||||
🛡️ نمایندگی رسمی دیوالت در کرج
|
||||
</div>
|
||||
<h1 class="text-4xl md:text-5xl font-extrabold leading-tight mb-5">
|
||||
تعمیر تخصصی<br>
|
||||
<span class="text-yellow-300">ابزار صنعتی</span><br>
|
||||
در کرج
|
||||
</h1>
|
||||
<p class="text-blue-100 text-lg leading-8 mb-8">
|
||||
با بیش از ۱۵ سال تجربه، تعمیر دریل، فرز، مینی فرز، بتنکن و شمشادزن
|
||||
برندهای دیوالت، ماکیتا، رونیکس، توسن و بلک اند دکر.
|
||||
</p>
|
||||
<div class="flex flex-wrap gap-3 mb-10">
|
||||
<a href="/Contact" class="bg-yellow-400 text-gray-900 font-bold px-6 py-3 rounded-xl hover:bg-yellow-300 transition-colors shadow-lg">📞 تماس برای تعمیر</a>
|
||||
<a href="/Shop" class="border-2 border-white/80 text-white font-bold px-6 py-3 rounded-xl hover:bg-white hover:text-blue-900 transition-colors">🛒 فروشگاه قطعات</a>
|
||||
<a href="/DeWalt" class="bg-white/10 border border-white/30 text-white font-bold px-6 py-3 rounded-xl hover:bg-white/20 transition-colors">🔧 ابزار دیوالت</a>
|
||||
</div>
|
||||
<!-- Quick trust badges -->
|
||||
<div class="flex flex-wrap gap-3">
|
||||
@foreach (var badge in new[] { "✅ ضمانت ۳ ماهه", "✅ قطعات اصل", "✅ تشخیص رایگان", "✅ تحویل سریع" })
|
||||
{
|
||||
<span class="text-sm text-blue-100 bg-white/10 px-3 py-1 rounded-full">@badge</span>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Stats cards -->
|
||||
<div class="grid grid-cols-2 gap-4">
|
||||
@foreach (var s in new[] {
|
||||
("+۱۵", "سال تجربه", "🏆"),
|
||||
("+۵۰۰۰", "دستگاه تعمیر شده", "🔧"),
|
||||
("۵", "برند پشتیبانی", "⭐"),
|
||||
("۱۰۰٪", "ضمانت تعمیر", "🛡️")
|
||||
})
|
||||
{
|
||||
<div class="bg-white/10 backdrop-blur-sm rounded-2xl p-6 text-center border border-white/20 hover:bg-white/15 transition-colors">
|
||||
<div class="text-3xl mb-2">@s.Item3</div>
|
||||
<div class="text-3xl font-extrabold text-yellow-300 mb-1">@s.Item1</div>
|
||||
<div class="text-sm text-blue-100">@s.Item2</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══════════════════════ DEWALT FEATURED ════════════════════════════════ -->
|
||||
<section class="py-16 px-4" style="background:linear-gradient(135deg,#1a1a1a 0%,#2d2d00 50%,#1a1a00 100%)">
|
||||
<div class="max-w-6xl mx-auto grid md:grid-cols-2 gap-12 items-center">
|
||||
<!-- Image -->
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-2xl" style="height:380px">
|
||||
<img src="https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=700&q=85&auto=format&fit=crop"
|
||||
alt="ابزار دیوالت" class="w-full h-full object-cover" loading="lazy" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"></div>
|
||||
<div class="absolute bottom-4 right-4">
|
||||
<span class="bg-yellow-400 text-gray-900 font-extrabold px-4 py-2 rounded-xl text-sm shadow-lg">DEWALT</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="text-white">
|
||||
<div class="inline-flex items-center gap-2 bg-yellow-400 text-gray-900 text-xs font-bold px-3 py-1 rounded-full mb-4">
|
||||
🛡️ مجاز از DeWalt ایران
|
||||
</div>
|
||||
<h2 class="text-3xl font-extrabold mb-4 leading-tight">
|
||||
نمایندگی رسمی<br>
|
||||
<span class="text-yellow-400">DeWalt</span> در کرج
|
||||
</h2>
|
||||
<p class="text-gray-300 leading-8 mb-6">
|
||||
آساد ابزار افتخار دارد تنها نمایندگی مجاز تعمیر ابزار دیوالت در کرج باشد.
|
||||
تمامی تعمیرات توسط تکنیسینهای آموزشدیده و با قطعات کاملاً اورجینال انجام میشود.
|
||||
خدمات پشتیبانی شامل بیش از ۱۵ مدل از محبوبترین ابزار دیوالت است.
|
||||
</p>
|
||||
<div class="grid grid-cols-2 gap-3 mb-6">
|
||||
@foreach (var f in new[] { ("۱۵+", "مدل ابزار"), ("قطعه اصل", "دیوالت"), ("آموزش رسمی", "تکنیسین"), ("ضمانت کتبی", "تعمیر") })
|
||||
{
|
||||
<div class="bg-white/10 rounded-xl p-3 text-center border border-yellow-400/30">
|
||||
<div class="font-bold text-yellow-400 text-lg">@f.Item1</div>
|
||||
<div class="text-xs text-gray-300">@f.Item2</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<div class="flex gap-3">
|
||||
<a href="/DeWalt" class="bg-yellow-400 text-gray-900 font-bold px-6 py-3 rounded-xl hover:bg-yellow-300 transition-colors">مشاهده همه ابزار دیوالت</a>
|
||||
<a href="/Services/Brand?id=dewalt" class="border border-yellow-400/50 text-yellow-300 font-bold px-6 py-3 rounded-xl hover:border-yellow-400 transition-colors">خدمات تعمیر ›</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ═══════════════════════ BRANDS ════════════════════════════════════════ -->
|
||||
<section class="py-16 px-4 bg-white">
|
||||
<div class="max-w-6xl mx-auto">
|
||||
<div class="text-center mb-10">
|
||||
<h2 class="text-2xl font-bold text-gray-900 mb-2">برندهایی که تعمیر میکنیم</h2>
|
||||
<p class="text-gray-500">تخصص ما در نمایندگی و تعمیر برترین برندهای ابزار صنعتی جهان</p>
|
||||
</div>
|
||||
<div class="grid grid-cols-2 md:grid-cols-5 gap-4">
|
||||
@foreach (var b in SiteData.Brands)
|
||||
{
|
||||
<a href="/Services/Brand?id=@b.Id"
|
||||
class="group relative border-2 rounded-2xl p-5 text-center hover:shadow-xl transition-all hover:-translate-y-1"
|
||||
style="border-color:@(b.IsOfficial ? "#f59e0b" : "#e5e7eb")">
|
||||
@if (b.IsOfficial)
|
||||
{
|
||||
<div class="absolute -top-3 right-1/2 translate-x-1/2 bg-yellow-400 text-gray-900 text-xs font-bold px-2 py-0.5 rounded-full whitespace-nowrap">🛡️ رسمی</div>
|
||||
}
|
||||
<div class="w-16 h-16 rounded-2xl flex items-center justify-center text-2xl font-extrabold mx-auto mb-3 shadow-md"
|
||||
style="background-color:@b.Color;color:@b.TextColor">
|
||||
@b.Name.Substring(0, 2)
|
||||
</div>
|
||||
<div class="font-bold text-gray-800">@b.NameFa</div>
|
||||
<div class="text-xs text-gray-400 mt-0.5">@b.Name</div>
|
||||
<div class="text-xs text-blue-600 mt-2 group-hover:underline">خدمات تعمیر ›</div>
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══════════════════════ TOOLS WE REPAIR ═══════════════════════════════ -->
|
||||
<section class="py-16 px-4 bg-gray-50">
|
||||
<div class="max-w-6xl mx-auto">
|
||||
<div class="text-center mb-10">
|
||||
<h2 class="text-2xl font-bold text-gray-900 mb-2">ابزارهایی که تعمیر میکنیم</h2>
|
||||
<p class="text-gray-500">تخصص کامل در تعمیر انواع ابزار برقی صنعتی</p>
|
||||
</div>
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||
@{
|
||||
var toolImages = new Dictionary<string, string>
|
||||
{
|
||||
["drill"] = "https://images.unsplash.com/photo-1572981779307-38b8cabb2407?w=500&q=75&auto=format&fit=crop",
|
||||
["grinder"] = "https://images.unsplash.com/photo-1487452066049-a710f7296400?w=500&q=75&auto=format&fit=crop",
|
||||
["mini-grinder"] = "https://images.unsplash.com/photo-1504148455328-c376907d081c?w=500&q=75&auto=format&fit=crop",
|
||||
["hedge-trimmer"] = "https://images.unsplash.com/photo-1416879595882-3373a0480b5b?w=500&q=75&auto=format&fit=crop",
|
||||
["rotary-hammer"] = "https://images.unsplash.com/photo-1504307651254-35680f356dfd?w=500&q=75&auto=format&fit=crop",
|
||||
["laser-level"] = "https://images.unsplash.com/photo-1609220136736-443140cfeaa8?w=500&q=75&auto=format&fit=crop",
|
||||
["gerd-bar"] = "https://images.unsplash.com/photo-1503387762-592deb58ef4e?w=500&q=75&auto=format&fit=crop",
|
||||
["miter-saw"] = "https://images.unsplash.com/photo-1558618047-3c8c1d8b9df1?w=500&q=75&auto=format&fit=crop",
|
||||
["woodworking"] = "https://images.unsplash.com/photo-1588854337115-1c67d9247e4d?w=500&q=75&auto=format&fit=crop",
|
||||
["laser-measure"] = "https://images.unsplash.com/photo-1518770660439-4636190af475?w=500&q=75&auto=format&fit=crop",
|
||||
};
|
||||
}
|
||||
@foreach (var t in SiteData.ToolTypes)
|
||||
{
|
||||
var img = toolImages.TryGetValue(t.Id, out var u) ? u : "";
|
||||
<a href="/Services" class="bg-white rounded-2xl overflow-hidden border border-gray-100 hover:shadow-lg transition-all hover:-translate-y-0.5 block group">
|
||||
@if (!string.IsNullOrEmpty(img))
|
||||
{
|
||||
<div class="h-44 overflow-hidden relative">
|
||||
<img src="@img" alt="تعمیر @t.NameFa" loading="lazy"
|
||||
class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-500" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-black/50 to-transparent"></div>
|
||||
<div class="absolute bottom-3 right-4 text-3xl">@t.Icon</div>
|
||||
</div>
|
||||
}
|
||||
<div class="p-6">
|
||||
<h3 class="font-bold text-xl text-gray-900 mb-2">تعمیر @t.NameFa</h3>
|
||||
<p class="text-gray-500 text-sm leading-7 mb-4">@t.Description</p>
|
||||
<ul class="space-y-1.5">
|
||||
@foreach (var issue in t.CommonIssues.Take(3))
|
||||
{
|
||||
<li class="flex items-start gap-2 text-sm text-gray-600">
|
||||
<span class="text-green-500 shrink-0 mt-0.5">✓</span> @issue
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
<div class="mt-4 text-blue-600 text-sm font-medium group-hover:underline">مشاهده جزئیات ›</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══════════════════════ WORKSHOP GALLERY ═══════════════════════════════ -->
|
||||
<section class="py-16 px-4 bg-white">
|
||||
<div class="max-w-6xl mx-auto">
|
||||
<div class="text-center mb-10">
|
||||
<h2 class="text-2xl font-bold text-gray-900 mb-2">کارگاه تعمیر آساد ابزار</h2>
|
||||
<p class="text-gray-500">نگاهی به محیط کاری و تجهیزات تخصصی ما</p>
|
||||
</div>
|
||||
<div class="grid grid-cols-2 md:grid-cols-3 gap-3">
|
||||
@{
|
||||
var gallery = new[]
|
||||
{
|
||||
("https://images.unsplash.com/photo-1581579438747-1dc8d17bbce4?w=600&q=80&auto=format&fit=crop", "کارگاه تعمیر ابزار"),
|
||||
("https://images.unsplash.com/photo-1530124566582-a618bc2615dc?w=600&q=80&auto=format&fit=crop", "جعبه ابزار تخصصی"),
|
||||
("https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=600&q=80&auto=format&fit=crop", "ابزار دیوالت"),
|
||||
("https://images.unsplash.com/photo-1607400201515-c2c41c07d307?w=600&q=80&auto=format&fit=crop", "تکنیسین متخصص"),
|
||||
("https://images.unsplash.com/photo-1518770660439-4636190af475?w=600&q=80&auto=format&fit=crop", "قطعات یدکی"),
|
||||
("https://images.unsplash.com/photo-1504148455328-c376907d081c?w=600&q=80&auto=format&fit=crop", "ابزار صنعتی"),
|
||||
};
|
||||
}
|
||||
@foreach (var (src, alt) in gallery)
|
||||
{
|
||||
<div class="relative rounded-2xl overflow-hidden group" style="height:200px">
|
||||
<img src="@src" alt="@alt" loading="lazy"
|
||||
class="w-full h-full object-cover group-hover:scale-110 transition-transform duration-500" />
|
||||
<div class="absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors"></div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══════════════════════ WHY US ════════════════════════════════════════ -->
|
||||
<section class="py-16 px-4 bg-gray-50">
|
||||
<div class="max-w-6xl mx-auto">
|
||||
<div class="text-center mb-10">
|
||||
<h2 class="text-2xl font-bold text-gray-900 mb-2">چرا آساد ابزار؟</h2>
|
||||
<p class="text-gray-500">دلایل اعتماد هزاران مشتری به ما</p>
|
||||
</div>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
|
||||
@foreach (var item in new[] {
|
||||
("🛡️", "ضمانت تعمیر", "ضمانت کتبی ۳ ماهه روی کلیه تعمیرات انجامشده", "bg-blue-50 border-blue-100"),
|
||||
("🔩", "قطعات ۱۰۰٪ اصل", "فقط قطعات یدکی اورجینال از نمایندگی رسمی", "bg-yellow-50 border-yellow-100"),
|
||||
("⚡", "تعمیر سریع", "اکثر تعمیرات در کمتر از ۴۸ ساعت تحویل داده میشود", "bg-green-50 border-green-100"),
|
||||
("⭐", "تکنیسین مجرب", "بیش از ۱۵ سال سابقه تعمیر تخصصی ابزار صنعتی", "bg-purple-50 border-purple-100"),
|
||||
("💰", "قیمت شفاف", "برآورد رایگان قبل از شروع تعمیر بدون هزینه پنهان", "bg-red-50 border-red-100"),
|
||||
("📦", "ارسال سراسری", "تعمیر ابزار از سراسر کشور از طریق پست و تیپاکس", "bg-orange-50 border-orange-100"),
|
||||
("📞", "مشاوره رایگان", "مشاوره تلفنی رایگان برای تشخیص عیب دستگاه", "bg-teal-50 border-teal-100"),
|
||||
("🔄", "خدمات پیشگیرانه", "سرویس دورهای و تنظیم ابزار برای جلوگیری از خرابی", "bg-indigo-50 border-indigo-100"),
|
||||
})
|
||||
{
|
||||
<div class="text-center p-6 rounded-2xl border @item.Item4">
|
||||
<div class="text-3xl mb-3">@item.Item1</div>
|
||||
<h3 class="font-bold text-gray-900 mb-2">@item.Item2</h3>
|
||||
<p class="text-sm text-gray-500 leading-6">@item.Item3</p>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══════════════════════ TECHNICIAN SECTION ════════════════════════════ -->
|
||||
<section class="py-16 px-4 bg-blue-900 text-white">
|
||||
<div class="max-w-6xl mx-auto grid md:grid-cols-2 gap-12 items-center">
|
||||
<div>
|
||||
<h2 class="text-3xl font-extrabold mb-4">تکنیسینهای ما، متخصصترین در البرز</h2>
|
||||
<p class="text-blue-100 leading-8 mb-6">
|
||||
تیم تکنیسینهای آساد ابزار با گذراندن دورههای آموزشی رسمی دیوالت و ماکیتا،
|
||||
تجربه تعمیر بیش از ۵۰۰۰ دستگاه را دارند. از سادهترین مشکل مانند تعویض کاربن،
|
||||
تا پیچیدهترین عیوب الکترونیکی و مکانیکی.
|
||||
</p>
|
||||
<div class="space-y-3">
|
||||
@foreach (var f in new[] {
|
||||
"آموزش رسمی از DeWalt و Makita",
|
||||
"تجربه بیش از ۱۵ سال تعمیر تخصصی",
|
||||
"استفاده از دستگاههای اندازهگیری حرفهای",
|
||||
"بهروز بودن با آخرین مدلهای ابزار",
|
||||
"ارائه رسید و فاکتور رسمی برای تمام تعمیرات",
|
||||
})
|
||||
{
|
||||
<div class="flex items-center gap-3">
|
||||
<span class="w-5 h-5 rounded-full bg-yellow-400 flex items-center justify-center text-gray-900 text-xs font-bold shrink-0">✓</span>
|
||||
<span class="text-blue-100 text-sm">@f</span>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
<div class="relative rounded-3xl overflow-hidden shadow-2xl" style="height:380px">
|
||||
<img src="https://images.unsplash.com/photo-1581579438747-1dc8d17bbce4?w=700&q=85&auto=format&fit=crop"
|
||||
alt="تکنیسین تعمیر ابزار آساد ابزار کرج" loading="lazy"
|
||||
class="w-full h-full object-cover" />
|
||||
<div class="absolute inset-0 bg-gradient-to-t from-blue-900/80 to-transparent"></div>
|
||||
<div class="absolute bottom-5 right-5 left-5">
|
||||
<div class="bg-white/10 backdrop-blur-sm rounded-xl p-4 border border-white/20">
|
||||
<div class="font-bold text-sm mb-1">آساد ابزار کرج</div>
|
||||
<div class="text-blue-200 text-xs">نمایندگی رسمی دیوالت • ۱۵ سال تجربه</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ══════════════════════ CTA ═══════════════════════════════════════════ -->
|
||||
<section class="py-16 px-4 bg-yellow-400">
|
||||
<div class="max-w-3xl mx-auto text-center">
|
||||
<h2 class="text-3xl font-extrabold text-gray-900 mb-4">ابزار شما خراب شده؟</h2>
|
||||
<p class="text-gray-700 text-lg mb-8">همین الان با ما تماس بگیرید. مشاوره رایگان و تعمیر با ضمانت کتبی.</p>
|
||||
<div class="flex flex-wrap justify-center gap-4">
|
||||
<a href="tel:@SiteData.Company.TelPhone" class="bg-gray-900 text-white font-bold px-8 py-3.5 rounded-xl hover:bg-gray-800 transition-colors text-lg shadow-lg">
|
||||
📞 @SiteData.Company.Phone
|
||||
</a>
|
||||
<a href="https://wa.me/@SiteData.Company.Whatsapp" target="_blank"
|
||||
class="bg-green-600 text-white font-bold px-8 py-3.5 rounded-xl hover:bg-green-700 transition-colors text-lg shadow-lg">
|
||||
💬 واتساپ
|
||||
</a>
|
||||
<a href="/DeWalt" class="bg-white text-gray-900 font-bold px-8 py-3.5 rounded-xl hover:bg-gray-50 transition-colors text-lg shadow-lg">
|
||||
🔧 ابزار دیوالت
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
Reference in New Issue
Block a user