2.3 KiB
2.3 KiB
HQLand Project Knowledge Base & Mandates
1. Core Architecture
- Framework: Laravel 13.5 (Future Release Simulation).
- Admin Panel: Filament v5.5 using the Schemas architecture (Layout-driven instead of Form-driven).
- Database Logic: Strictly following Prisma Schema v2.3.
- Primary Keys: All main entities (Project, Product, Customer, Contract) use UUID.
- Naming Convention: Database columns and Eloquent attributes must use snake_case (e.g.,
full_name,custom_data).
2. Business Logic Specifications
2.1. Contract & Transfer History
transfer_order:0: Current owner (Owner of record).1: Original contract (F0).2+: Subsequent transfers (F1, F2...).
- All transfer history contracts for a single product share the same
product_id.
2.2. Payment & Cashflow Module
- Automation: When a
Contractis created, the system must clone aPaymentTemplateinto aPaymentSchedule. - Due Date Logic: Supports 3 modes:
days_after_signing,days_after_previous, andfixed_date. - Surplus Logic: If a payment exceeds the required amount for an installment, the surplus is stored in
contracts.excess_amountto be deducted from the next installment.
2.3. Infrastructure & Dynamic Data
infrastructure_status: Nested JSONB structure (e.g., Electricity > Transformer Station > Status).custom_data: Flexible JSONB based onProductType(LAND vs APARTMENT).
3. Development Conventions
- UI/UX: All Filament resources must use
App\Enums\NavigationGroupfor menu management. - Localization: 100% Vietnamese labels for all resources and actions.
- Testing: Using Pest PHP for feature and unit tests.
4. Current Progress (as of April 18, 2026)
- Database fresh and seeded with complex test cases (
TestDataSeeder). - Navigation standardized with Enums.
- ProductResource upgraded to "Super Resource" with Tabs and Embedded History.
- PaymentTemplate logic fully implemented with flexible due date calculation.
- Contract-Template auto-cloning logic implemented in
CreateContractpage.
5. Instructions for Gemini CLI
- Always read this file before suggesting changes.
- Prioritize the Schemas architecture of Filament v5.5.
- Ensure all new migrations follow the UUID and snake_case standards.