# EIMS Changelog
All notable changes to **E-Internet Management System** are documented here.

Format: [Semantic Versioning](https://semver.org/) — `MAJOR.MINOR.PATCH`
- **MAJOR** — breaking changes, major architectural shifts
- **MINOR** — new features, new modules
- **PATCH** — bug fixes, small improvements, config changes

---

## [1.0.0] — 2026-05-31 · Initial Release

### ADDED
- Laravel 12.12.2 project with PHP 8.2+ baseline
- Breeze authentication scaffolding (login, register, password reset, email verify)
- `stancl/tenancy` v3.10 single-database multi-tenancy via `HasTenant` global scope
- `spatie/laravel-permission` v6.25 with Teams mode (team_id = tenant ULID)
- ULID primary keys on all models (`HasUlids` trait, `char(26)`)
- `BaseModel` abstract class with ULID support
- `HasTenant` trait for automatic tenant scoping
- **Models**: Tenant, User, Customer, TenantCustomerProfile, Package, Village, Department
- **Models**: TaxConfiguration, DiscountConfiguration, PaymentMethodConfiguration
- **Models**: Bill, BillItem, InstallmentPlan, InstallmentSchedule, Payment
- **Models**: PaymentGatewayTransaction, LedgerEntry, SessionLog
- **Deployment Manager**: Deployment, DeploymentSetting models
- **Deployment Manager**: DeploymentController (AJAX dashboard, status, deploy, rollback)
- **Deployment Manager**: Blade views (index dashboard, changelog timeline, detail show)
- **Deployment Manager**: Production-side `public/git_deploy.php` deploy script
- **Deployment Manager**: `config/deployment.php` with GitHub repo settings
- **Deployment Manager**: Auto semantic versioning from commit message conventions
- 7 database migrations (all verified, FK types ULID-compatible)
- DemoTenantSeeder (IS Internet Services, super-admin and tenant-admin users)
- Bilingual documentation: 16 English modules in `docs/en/`
- Bilingual documentation: 16 Urdu (RTL) modules in `docs/ur/`
- `docs/README.md` documentation index
- `PLAN.md` full 9-phase project roadmap
- Private GitHub repository: `musman5264/E-Internet-Management-System`

### Technical Notes
- MySQL with no root password (XAMPP local dev)
- Database: `eims_beta`
- Permission pivot tables use `char(26)` for `model_id` and nullable `char(26)` for `team_id`
- Composite PK replaced with autoincrement `id` in permission pivots (nullable team_id)
- `setPermissionsTeamId()` called before `assignRole()` in seeders

---

*Auto-versioning: Each deployment via the Deployment Manager automatically bumps the version
based on commit message conventions:*
- *`BREAKING CHANGE` or `feat!:` → major bump*
- *`feat:` / `feature:` / `add:` → minor bump*
- *Everything else (`fix:`, `chore:`, `refactor:`, `docs:`) → patch bump*
