feat(resellers): campos de representante legal (preparação p/ contrato)
Usuário: o cadastro de revenda precisa ficar completo porque essa mesma base vai alimentar a criação de contrato com a revenda dentro do ERP. resellers ganha rep_full_name/rep_cpf/rep_role/rep_email/ rep_mobile_phone/rep_authorization_ack, mesmo shape de client_registrations.pj_rep_* — um contrato precisa de um signatário nomeado e autorizado, não só a lista geral de sócios. Divergência deliberada: ao contrário de pj_rep_cpf (bloqueado do PATCH genérico em client_registrations, esperando um fluxo de submissão pública que o EDEN ainda não construiu — hoje uma lacuna conhecida, nunca preenchido de fato), rep_cpf aqui fica livremente editável — revenda não tem esse fluxo de submissão pública pra travar atrás. Nova tela: card "Representante legal" entre "Dados da revenda" e "Sócios". Suíte: 107/107 (106→107). pnpm turbo run typecheck build: 28/28. Testado ao vivo em navegador real. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -35,4 +35,15 @@ export class CreateResellerDto {
|
||||
@IsOptional() @IsString() contactTechnicalName?: string;
|
||||
@IsOptional() @IsEmail() contactTechnicalEmail?: string;
|
||||
@IsOptional() @IsString() contactTechnicalPhone?: string;
|
||||
|
||||
// Representante legal — usado depois para confecção de contrato com a
|
||||
// revenda (não bloqueado no PATCH genérico, ao contrário do equivalente
|
||||
// em client_registrations: ver o cabeçalho da migration
|
||||
// 1789700100000_resellers-legal-representative.cjs para o porquê.
|
||||
@IsOptional() @IsString() repFullName?: string;
|
||||
@IsOptional() @IsString() repCpf?: string;
|
||||
@IsOptional() @IsString() repRole?: string;
|
||||
@IsOptional() @IsEmail() repEmail?: string;
|
||||
@IsOptional() @IsString() repMobilePhone?: string;
|
||||
@IsOptional() @IsBoolean() repAuthorizationAck?: boolean;
|
||||
}
|
||||
|
||||
@@ -70,6 +70,12 @@ export class ResellersService {
|
||||
contactTechnicalName: dto.contactTechnicalName,
|
||||
contactTechnicalEmail: dto.contactTechnicalEmail,
|
||||
contactTechnicalPhone: dto.contactTechnicalPhone,
|
||||
repFullName: dto.repFullName,
|
||||
repCpf: dto.repCpf,
|
||||
repRole: dto.repRole,
|
||||
repEmail: dto.repEmail,
|
||||
repMobilePhone: dto.repMobilePhone,
|
||||
repAuthorizationAck: dto.repAuthorizationAck,
|
||||
});
|
||||
|
||||
await auditRepo.appendAuditEvent({
|
||||
@@ -116,6 +122,12 @@ export class ResellersService {
|
||||
contactTechnicalName: dto.contactTechnicalName,
|
||||
contactTechnicalEmail: dto.contactTechnicalEmail,
|
||||
contactTechnicalPhone: dto.contactTechnicalPhone,
|
||||
repFullName: dto.repFullName,
|
||||
repCpf: dto.repCpf,
|
||||
repRole: dto.repRole,
|
||||
repEmail: dto.repEmail,
|
||||
repMobilePhone: dto.repMobilePhone,
|
||||
repAuthorizationAck: dto.repAuthorizationAck,
|
||||
});
|
||||
if (!reseller) throw new NotFoundException("Revenda não encontrada");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user