Files
hqland-app/GEMINI.md
2026-04-18 04:51:52 +00:00

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 Contract is created, the system must clone a PaymentTemplate into a PaymentSchedule.
  • Due Date Logic: Supports 3 modes: days_after_signing, days_after_previous, and fixed_date.
  • Surplus Logic: If a payment exceeds the required amount for an installment, the surplus is stored in contracts.excess_amount to 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 on ProductType (LAND vs APARTMENT).

3. Development Conventions

  • UI/UX: All Filament resources must use App\Enums\NavigationGroup for 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 CreateContract page.

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.