Files
HOA_Financial_Platform/backend/src/modules/assessment-groups/assessment-groups.controller.ts
olsch01 301f8a7bde Phase 3: Optimize & clean up — unified projects, account enhancements, new tenant fix
- Unify reserve_components + capital_projects into single projects model with
  full CRUD backend and new Projects page frontend
- Rewrite Capital Planning to read from unified projects/planning endpoint;
  add empty state directing users to Projects page when no planning items exist
- Add default designation to assessment groups with auto-set on first creation;
  units now require an assessment group (pre-populated with default)
- Add primary account designation (one per fund type) and balance adjustment
  via journal entries against equity offset accounts (3000/3100)
- Add computed investment fields (interest earned, maturity value, days remaining)
  with PostgreSQL date arithmetic fix for DATE - DATE integer result
- Restructure sidebar: investments in Accounts tab, Year-End under Reports,
  Planning section with Projects and Capital Planning
- Fix new tenant creation seeding unwanted default chart of accounts —
  new tenants now start with a blank slate

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:32:35 -05:00

34 lines
1.0 KiB
TypeScript

import { Controller, Get, Post, Put, Body, Param, UseGuards } from '@nestjs/common';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard';
import { AssessmentGroupsService } from './assessment-groups.service';
@ApiTags('assessment-groups')
@Controller('assessment-groups')
@ApiBearerAuth()
@UseGuards(JwtAuthGuard)
export class AssessmentGroupsController {
constructor(private service: AssessmentGroupsService) {}
@Get()
findAll() { return this.service.findAll(); }
@Get('summary')
getSummary() { return this.service.getSummary(); }
@Get('default')
getDefault() { return this.service.getDefault(); }
@Get(':id')
findOne(@Param('id') id: string) { return this.service.findOne(id); }
@Post()
create(@Body() dto: any) { return this.service.create(dto); }
@Put(':id')
update(@Param('id') id: string, @Body() dto: any) { return this.service.update(id, dto); }
@Put(':id/set-default')
setDefault(@Param('id') id: string) { return this.service.setDefault(id); }
}