# ============================================================ # Atharvaveda Platform — Admin Structure Creator v2 # VS Code PowerShell Terminal mein run karo # Project root se: .\create-admin-structure.ps1 # GREEN = nayi file bani | GRAY = skip (already exists) # ============================================================ function MakeDir($path) { if (-not (Test-Path $path)) { New-Item -ItemType Directory -Force -Path $path | Out-Null Write-Host " [DIR] $path" -ForegroundColor Cyan } } function MakeFile($path, $content) { if (-not (Test-Path $path)) { New-Item -ItemType File -Force -Path $path | Out-Null Set-Content -Path $path -Value $content -Encoding UTF8 Write-Host " [NEW] $path" -ForegroundColor Green } else { Write-Host " [SKIP] $path" -ForegroundColor DarkGray } } Write-Host "" Write-Host "============================================================" -ForegroundColor Yellow Write-Host " Atharvaveda Admin Structure Builder v2" -ForegroundColor Yellow Write-Host "============================================================" -ForegroundColor Yellow Write-Host "" $b = "app\Filament\Admin" $v = "resources\views\filament\admin\pages" # ============================================================ # HELPER — Generate a simple Filament Page PHP class # ============================================================ function PageClass($ns, $class, $viewPath) { return @"

$title

This page is under construction.

"@ } # ============================================================ # 1. DASHBOARD PAGES # ============================================================ Write-Host "[1/15] Dashboard Pages..." -ForegroundColor Magenta MakeDir "$b\Pages" MakeDir "$v\dashboard" MakeFile "$b\Pages\LiveActivity.php" (PageClass "App\Filament\Admin\Pages" "LiveActivity" "filament.admin.pages.dashboard.live-activity") MakeFile "$b\Pages\QuickStats.php" (PageClass "App\Filament\Admin\Pages" "QuickStats" "filament.admin.pages.dashboard.quick-stats") MakeFile "$v\dashboard\live-activity.blade.php" (BladeStub "Live Activity Feed") MakeFile "$v\dashboard\quick-stats.blade.php" (BladeStub "Quick Stats") # ============================================================ # 2. PAYMENTS RESOURCE # ============================================================ Write-Host "[2/15] Payments Resource..." -ForegroundColor Magenta MakeDir "$b\Resources\Payments" MakeDir "$b\Resources\Payments\Pages" MakeDir "$b\Resources\Payments\Schemas" MakeDir "$b\Resources\Payments\Tables" $paymentResource = @' ListPayments::route('/'), ]; } } '@ $listPayments = @' components([ TextInput::make('gateway_txn_id')->label('Transaction ID')->disabled(), TextInput::make('amount')->prefix('₹')->disabled(), TextInput::make('commission_pool')->label('Commission Pool')->prefix('₹')->disabled(), TextInput::make('platform_fee')->label('Platform Fee')->prefix('₹')->disabled(), Select::make('status') ->options(['pending' => 'Pending', 'success' => 'Success', 'failed' => 'Failed', 'refunded' => 'Refunded']) ->disabled(), ]); } } '@ $paymentsTable = @' columns([ TextColumn::make('application.application_id')->label('App ID')->searchable()->fontFamily('mono'), TextColumn::make('user.name')->label('User')->searchable(), TextColumn::make('amount')->money('INR')->sortable(), TextColumn::make('commission_pool')->label('Commission Pool')->money('INR'), TextColumn::make('platform_fee')->label('Platform Fee')->money('INR'), TextColumn::make('gateway_txn_id')->label('Txn ID')->copyable(), TextColumn::make('gateway_name')->label('Gateway')->badge(), TextColumn::make('status')->badge() ->color(fn ($s) => match ($s) { 'success' => 'success', 'pending' => 'warning', 'failed' => 'danger', 'refunded' => 'info', default => 'gray', }), TextColumn::make('paid_at')->label('Paid At')->dateTime('d M Y, h:i A')->sortable(), ]) ->filters([ SelectFilter::make('status')->options(['pending' => 'Pending', 'success' => 'Success', 'failed' => 'Failed', 'refunded' => 'Refunded']), ]) ->defaultSort('created_at', 'desc'); } } '@ MakeFile "$b\Resources\Payments\PaymentResource.php" $paymentResource MakeFile "$b\Resources\Payments\Pages\ListPayments.php" $listPayments MakeFile "$b\Resources\Payments\Schemas\PaymentForm.php" $paymentForm MakeFile "$b\Resources\Payments\Tables\PaymentsTable.php" $paymentsTable # ============================================================ # 3. KYC RESOURCE # ============================================================ Write-Host "[3/15] KYC Resource..." -ForegroundColor Magenta MakeDir "$b\Resources\Kyc" MakeDir "$b\Resources\Kyc\Pages" MakeDir "$b\Resources\Kyc\Schemas" MakeDir "$b\Resources\Kyc\Tables" $kycResource = @' ListKyc::route('/'), 'edit' => EditKyc::route('/{record}/edit'), ]; } } '@ $listKyc = @' components([ TextInput::make('pan_number')->label('PAN Number'), TextInput::make('aadhaar_number')->label('Aadhaar Number'), TextInput::make('bank_account')->label('Bank Account'), TextInput::make('bank_ifsc')->label('IFSC Code'), TextInput::make('bank_name')->label('Bank Name'), TextInput::make('upi_id')->label('UPI ID'), Select::make('status') ->options(['pending' => 'Pending', 'verified' => 'Verified', 'rejected' => 'Rejected']) ->required(), ]); } } '@ $kycTable = @' columns([ TextColumn::make('user.name')->label('User')->searchable(), TextColumn::make('pan_number')->label('PAN')->placeholder('Not provided'), TextColumn::make('aadhaar_number')->label('Aadhaar')->placeholder('Not provided'), TextColumn::make('bank_name')->label('Bank'), TextColumn::make('upi_id')->label('UPI ID')->placeholder('—'), TextColumn::make('status')->badge() ->color(fn ($s) => match ($s) { 'verified' => 'success', 'pending' => 'warning', 'rejected' => 'danger', default => 'gray', }), TextColumn::make('verified_at')->label('Verified At')->date('d M Y'), ]) ->filters([ SelectFilter::make('status')->options(['pending' => 'Pending', 'verified' => 'Verified', 'rejected' => 'Rejected']), ]) ->actions([EditAction::make()]) ->bulkActions([BulkActionGroup::make([DeleteBulkAction::make()])]) ->defaultSort('created_at', 'desc'); } } '@ MakeFile "$b\Resources\Kyc\KycResource.php" $kycResource MakeFile "$b\Resources\Kyc\Pages\ListKyc.php" $listKyc MakeFile "$b\Resources\Kyc\Pages\EditKyc.php" $editKyc MakeFile "$b\Resources\Kyc\Schemas\KycForm.php" $kycForm MakeFile "$b\Resources\Kyc\Tables\KycTable.php" $kycTable # ============================================================ # 4. FINANCE PAGES # ============================================================ Write-Host "[4/15] Finance Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Finance" MakeDir "$v\finance" $financePages = @( @{ class="CommissionRules"; view="commission-rules"; title="Commission Rules" }, @{ class="CommissionRuleVersions"; view="commission-rule-versions"; title="Commission Rule Versions" }, @{ class="WalletOverview"; view="wallet-overview"; title="Wallet Overview" }, @{ class="WalletTransactions"; view="wallet-transactions"; title="Wallet Transactions" }, @{ class="PlatformRevenue"; view="platform-revenue"; title="Platform Revenue" }, @{ class="FeeCollection"; view="fee-collection"; title="Fee Collection" } ) foreach ($p in $financePages) { MakeFile "$b\Pages\Finance\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Finance" $p.class "filament.admin.pages.finance.$($p.view)") MakeFile "$v\finance\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 5. WITHDRAWAL PAGES # ============================================================ Write-Host "[5/15] Withdrawal Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Withdrawals" MakeDir "$v\withdrawals" $withdrawalPages = @( @{ class="BulkProcess"; view="bulk-process"; title="Bulk Process Withdrawals" }, @{ class="WithdrawalLimits"; view="withdrawal-limits"; title="Withdrawal Limits Config" }, @{ class="BankVerification"; view="bank-verification"; title="Bank Verification" } ) foreach ($p in $withdrawalPages) { MakeFile "$b\Pages\Withdrawals\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Withdrawals" $p.class "filament.admin.pages.withdrawals.$($p.view)") MakeFile "$v\withdrawals\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 6. REFERRAL PAGES # ============================================================ Write-Host "[6/15] Referral Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Referrals" MakeDir "$v\referrals" $referralPages = @( @{ class="ChainViewer"; view="chain-viewer"; title="Referral Chain Viewer" }, @{ class="TopReferrers"; view="top-referrers"; title="Top Referrers" }, @{ class="ReferralSnapshots"; view="referral-snapshots"; title="Referral Snapshots" }, @{ class="SuspiciousReferrals"; view="suspicious-referrals"; title="Suspicious Referrals" }, @{ class="DepthAnalysis"; view="depth-analysis"; title="Depth Level Analysis" }, @{ class="ReferralConfig"; view="referral-config"; title="Referral Config" } ) foreach ($p in $referralPages) { MakeFile "$b\Pages\Referrals\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Referrals" $p.class "filament.admin.pages.referrals.$($p.view)") MakeFile "$v\referrals\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 7. FRAUD DETECTION PAGES # ============================================================ Write-Host "[7/15] Fraud Detection Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Fraud" MakeDir "$v\fraud" $fraudPages = @( @{ class="FraudDashboard"; view="fraud-dashboard"; title="Fraud Dashboard" }, @{ class="SuspiciousAccounts"; view="suspicious-accounts"; title="Suspicious Accounts" }, @{ class="MultipleAccounts"; view="multiple-accounts"; title="Multiple Account Detection" }, @{ class="SameBankWithdrawals"; view="same-bank-withdrawals"; title="Same Bank Withdrawals" }, @{ class="ReferralSpikes"; view="referral-spikes"; title="Referral Spike Alerts" }, @{ class="IpBlacklist"; view="ip-blacklist"; title="IP Blacklist" }, @{ class="FlaggedTransactions"; view="flagged-transactions"; title="Flagged Transactions" }, @{ class="FraudRules"; view="fraud-rules"; title="Fraud Rules Config" } ) foreach ($p in $fraudPages) { MakeFile "$b\Pages\Fraud\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Fraud" $p.class "filament.admin.pages.fraud.$($p.view)") MakeFile "$v\fraud\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 8. REPORTS PAGES # ============================================================ Write-Host "[8/15] Reports Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Reports" MakeDir "$v\reports" $reportPages = @( @{ class="AnalyticsOverview"; view="analytics-overview"; title="Analytics Overview" }, @{ class="RevenueReport"; view="revenue-report"; title="Revenue Report" }, @{ class="CommissionReport"; view="commission-report"; title="Commission Report" }, @{ class="ReferralPerformance"; view="referral-performance"; title="Referral Performance" }, @{ class="ApplicationReport"; view="application-report"; title="Application Report" }, @{ class="UserGrowthReport"; view="user-growth-report"; title="User Growth Report" }, @{ class="WithdrawalReport"; view="withdrawal-report"; title="Withdrawal Report" }, @{ class="LevelCommissions"; view="level-commissions"; title="Level-wise Commission" }, @{ class="DailySummary"; view="daily-summary"; title="Daily Summary" }, @{ class="MonthlySummary"; view="monthly-summary"; title="Monthly Summary" } ) foreach ($p in $reportPages) { MakeFile "$b\Pages\Reports\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Reports" $p.class "filament.admin.pages.reports.$($p.view)") MakeFile "$v\reports\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 9. NOTIFICATION PAGES # ============================================================ Write-Host "[9/15] Notification Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Notifications" MakeDir "$v\notifications" $notifPages = @( @{ class="NotificationCenter"; view="notification-center"; title="Notification Center" }, @{ class="SendBulkNotification"; view="send-bulk-notification"; title="Send Bulk Notification" }, @{ class="EmailNotifications"; view="email-notifications"; title="Email Notifications" }, @{ class="WhatsappNotifications"; view="whatsapp-notifications"; title="WhatsApp Notifications" }, @{ class="SmsNotifications"; view="sms-notifications"; title="SMS Notifications" }, @{ class="NotificationTemplates"; view="notification-templates"; title="Notification Templates" }, @{ class="NotificationLogs"; view="notification-logs"; title="Notification Logs" }, @{ class="NotificationSchedule"; view="notification-schedule"; title="Notification Schedule" } ) foreach ($p in $notifPages) { MakeFile "$b\Pages\Notifications\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Notifications" $p.class "filament.admin.pages.notifications.$($p.view)") MakeFile "$v\notifications\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 10. CONTENT MANAGEMENT PAGES # ============================================================ Write-Host "[10/15] Content Management Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Content" MakeDir "$v\content" $contentPages = @( @{ class="ContentPages"; view="pages"; title="Pages" }, @{ class="Announcements"; view="announcements"; title="Announcements" }, @{ class="Faqs"; view="faqs"; title="FAQs" }, @{ class="Terms"; view="terms"; title="Terms & Conditions" }, @{ class="Privacy"; view="privacy"; title="Privacy Policy" }, @{ class="Banners"; view="banners"; title="Banners & Media" }, @{ class="Blog"; view="blog"; title="Blog / News" }, @{ class="HelpCenter"; view="help-center"; title="Help Center" } ) foreach ($p in $contentPages) { MakeFile "$b\Pages\Content\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Content" $p.class "filament.admin.pages.content.$($p.view)") MakeFile "$v\content\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 11. SUPPORT PAGES # ============================================================ Write-Host "[11/15] Support Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Support" MakeDir "$v\support" $supportPages = @( @{ class="SupportDashboard"; view="support-dashboard"; title="Support Dashboard" }, @{ class="AllTickets"; view="all-tickets"; title="All Tickets" }, @{ class="TicketCategories"; view="ticket-categories"; title="Ticket Categories" }, @{ class="AutoReplyTemplates"; view="auto-reply-templates"; title="Auto-Reply Templates" } ) foreach ($p in $supportPages) { MakeFile "$b\Pages\Support\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Support" $p.class "filament.admin.pages.support.$($p.view)") MakeFile "$v\support\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 12. ROLES & PERMISSIONS PAGES # ============================================================ Write-Host "[12/15] Roles & Permissions Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Roles" MakeDir "$v\roles" $rolePages = @( @{ class="AllRoles"; view="all-roles"; title="All Roles" }, @{ class="AllPermissions"; view="all-permissions"; title="All Permissions" }, @{ class="RoleAssignment"; view="role-assignment"; title="Role Assignment" }, @{ class="StaffHierarchy"; view="staff-hierarchy"; title="Staff Hierarchy" }, @{ class="AccessMatrix"; view="access-matrix"; title="Access Control Matrix" } ) foreach ($p in $rolePages) { MakeFile "$b\Pages\Roles\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Roles" $p.class "filament.admin.pages.roles.$($p.view)") MakeFile "$v\roles\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 13. GEOGRAPHY PAGES # ============================================================ Write-Host "[13/15] Geography Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Geography" MakeDir "$v\geography" $geoPages = @( @{ class="States"; view="states"; title="States" }, @{ class="Districts"; view="districts"; title="Districts" }, @{ class="Cities"; view="cities"; title="Cities / Blocks" }, @{ class="ZoneCoordinators"; view="zone-coordinators"; title="Zone Coordinators" }, @{ class="StatePerformance"; view="state-performance"; title="State Performance" } ) foreach ($p in $geoPages) { MakeFile "$b\Pages\Geography\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Geography" $p.class "filament.admin.pages.geography.$($p.view)") MakeFile "$v\geography\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 14. SETTINGS PAGES # ============================================================ Write-Host "[14/15] Settings Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\Settings" MakeDir "$v\settings" $settingPages = @( @{ class="GeneralSettings"; view="general-settings"; title="General Settings" }, @{ class="ApplicationSettings"; view="application-settings"; title="Application Settings" }, @{ class="PaymentGateway"; view="payment-gateway"; title="Payment Gateway" }, @{ class="EmailSettings"; view="email-settings"; title="Email / SMTP Settings" }, @{ class="WhatsappSettings"; view="whatsapp-settings"; title="WhatsApp API Settings" }, @{ class="SmsSettings"; view="sms-settings"; title="SMS Gateway Settings" }, @{ class="CommissionPlanSettings"; view="commission-plan-settings"; title="Commission Plan Settings" }, @{ class="ReferralSettings"; view="referral-settings"; title="Referral Settings" }, @{ class="WithdrawalSettings"; view="withdrawal-settings"; title="Withdrawal Settings" }, @{ class="KycSettings"; view="kyc-settings"; title="KYC Settings" }, @{ class="SecuritySettings"; view="security-settings"; title="Security Settings" }, @{ class="Localization"; view="localization"; title="Localization" }, @{ class="BrandingAppearance"; view="branding-appearance"; title="Branding & Appearance" } ) foreach ($p in $settingPages) { MakeFile "$b\Pages\Settings\$($p.class).php" (PageClass "App\Filament\Admin\Pages\Settings" $p.class "filament.admin.pages.settings.$($p.view)") MakeFile "$v\settings\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # 15. SYSTEM PAGES # ============================================================ Write-Host "[15/15] System Pages..." -ForegroundColor Magenta MakeDir "$b\Pages\System" MakeDir "$v\system" $systemPages = @( @{ class="SystemHealth"; view="system-health"; title="System Health" }, @{ class="QueueMonitor"; view="queue-monitor"; title="Queue Monitor" }, @{ class="JobFailures"; view="job-failures"; title="Job Failures" }, @{ class="CacheManagement"; view="cache-management"; title="Cache Management" }, @{ class="ApplicationLogs"; view="application-logs"; title="Application Logs" }, @{ class="DatabaseBackup"; view="database-backup"; title="Database Backup" }, @{ class="MaintenanceMode"; view="maintenance-mode"; title="Maintenance Mode" }, @{ class="ApiKeys"; view="api-keys"; title="API Keys" }, @{ class="ScheduledTasks"; view="scheduled-tasks"; title="Scheduled Tasks" }, @{ class="EnvironmentInfo"; view="environment-info"; title="Environment Info" } ) foreach ($p in $systemPages) { MakeFile "$b\Pages\System\$($p.class).php" (PageClass "App\Filament\Admin\Pages\System" $p.class "filament.admin.pages.system.$($p.view)") MakeFile "$v\system\$($p.view).blade.php" (BladeStub $p.title) } # ============================================================ # DONE # ============================================================ Write-Host "" Write-Host "============================================================" -ForegroundColor Yellow Write-Host " Structure ready! Ab ye run karo:" -ForegroundColor Yellow Write-Host "" Write-Host " composer dump-autoload" -ForegroundColor Green Write-Host " php artisan optimize:clear" -ForegroundColor Green Write-Host "============================================================" -ForegroundColor Yellow Write-Host ""