import { Body, Controller, Get, Post } from '@nestjs/common';
  import { TenantsService } from './tenants.service';
  import { CreateTenantDto } from './dto/create-tenant.dto';
  import { Public } from '../../common/decorators/public.decorator';

  @Controller('tenants')
  export class TenantsController {
    constructor(private readonly tenants: TenantsService) {}

    // Public endpoint to register a new cooperative (landlord-side)
    @Public()
    @Post('register')
    async register(@Body() dto: CreateTenantDto) {
      const result = await this.tenants.create(dto);
      return {
        tenant: {
          id: result.tenant.id,
          subdomain: result.tenant.subdomain,
          name: result.tenant.name,
        },
        adminUserId: result.adminUserId,
        message:
          'Tenant created. Use the subdomain in the X-Tenant-Subdomain header to log in.',
      };
    }

    @Public()
    @Get('public')
    async listPublic() {
      const tenants = await this.tenants.list();
      return tenants.map((t) => ({
        subdomain: t.subdomain,
        name: t.name,
        status: t.status,
      }));
    }
  }
  