import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import {
  IsArray,
  IsEmail,
  IsOptional,
  IsString,
  MaxLength,
  MinLength,
} from 'class-validator';

export class CreateSuperadminDto {
  @ApiProperty({ example: 'superadmin@cashi.in' })
  @IsEmail()
  email!: string;

  @ApiPropertyOptional({ example: '+919876543210' })
  @IsOptional()
  @IsString()
  @MaxLength(20)
  phone?: string;

  @ApiPropertyOptional({ example: 'Cashi Superadmin' })
  @IsOptional()
  @IsString()
  @MaxLength(120)
  name?: string;

  @ApiProperty({ example: 'StrongPassword@123' })
  @IsString()
  @MinLength(6)
  @MaxLength(64)
  password!: string;

  @ApiPropertyOptional({
    description: 'Optional permission keys for UI gating / feature flags.',
    example: ['USERS_READ', 'USERS_WRITE', 'SHOPS_WRITE'],
  })
  @IsOptional()
  @IsArray()
  permissions?: string[];
}
