feat: onboarding trial flow, Google sign-in, dark mode hotspot fixes

- Move trial creation from auth hook to dedicated /subscriptions/trial endpoint
  with eligibility checks (3-day Full Paket trial)
- Add animated onboarding progress (Remotion) with confetti on completion
- Register redirects to subscription page with welcome flow
- Add Google social login/signup support with config injection
- Improve hotspot overlay visibility in dark mode
- Show "Panele Git" on landing page when authenticated
- Turkish translations for API error messages
- Add toast utility wrapper, UUID generation for auth IDs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sase Dev
2026-02-15 14:53:57 +00:00
parent a5ee147675
commit 87d8eea298
50 changed files with 1116 additions and 298 deletions

View File

@@ -29,7 +29,7 @@ export class PartsService {
.where(eq(categories.id, categoryId))
.limit(1);
if (!category) throw new NotFoundException("Category not found");
if (!category) throw new NotFoundException("Kategori bulunamadı");
const [vehicle] = await this.db
.select()
@@ -37,7 +37,7 @@ export class PartsService {
.where(eq(vehicles.id, category.vehicleId))
.limit(1);
if (!vehicle) throw new NotFoundException("Vehicle not found");
if (!vehicle) throw new NotFoundException("Araç bulunamadı");
const rawData = vehicle.rawData as any;
const catalogInfo = rawData?.catalogInfo;
@@ -132,7 +132,7 @@ export class PartsService {
async getById(id: string) {
const [part] = await this.db.select().from(parts).where(eq(parts.id, id)).limit(1);
if (!part) throw new NotFoundException("Part not found");
if (!part) throw new NotFoundException("Parça bulunamadı");
return part;
}
}