import { ApiProperty } from '@nestjs/swagger';
import { IsString, IsNotEmpty, IsNumber, IsOptional, ValidateNested, IsArray, IsEnum, Length, Min, Max } from 'class-validator';
import { Type } from 'class-transformer';
import { Interval } from 'src/entities/plan.entity';
import { validationMessages } from 'src/messages/validation-messages';

export class SaveCardDto {
    @ApiProperty({
        description: 'stripe source id(Card Token)',
        example: 'sou_sdkjkjn',
    })
    @IsNotEmpty({ message: validationMessages.card.source_id })
    source_id: string;
   /*  @ApiProperty({
        description: 'Name of the cardholder',
        example: 'John Doe',
    })
    @IsNotEmpty({ message: validationMessages.card.card_holder_name_required })
    holder_name: string;

    @ApiProperty({
        description: 'Card number (16 digits)',
        example: '1234567812345678',
    })
    @IsNotEmpty({message:validationMessages.card.card_number_required })
    @Length(12, 16, { message:validationMessages.card.card_number_length })
    card_number: string;

    @ApiProperty({
        description: 'Card expiration year (e.g., 2024)',
        example: 2024,
    })
    @IsNotEmpty({ message:validationMessages.card.card_expiry_year_required })
    // @Min(2000, { message:validationMessages.card.card_expiry_year_min })
    // @Max(2100, { message:validationMessages.card.card_expiry_year_max })
    expiry_year: number;

    @ApiProperty({
        description: 'Card expiration month (1–12)',
        example: 12,
    })
    @IsNotEmpty({ message:validationMessages.card.card_expiry_month_required })
    // @Min(1, { message: validationMessages.card.card_expiry_month_range })
    // @Max(12, { message: validationMessages.card.card_expiry_month_range })
    expiry_month: number;

    @ApiProperty({
        description: 'Card CVV (3 or 4 digits)',
        example: '123',
    })
    @IsNotEmpty({ message:validationMessages.card.card_cvv_required })
    @Length(3, 4, { message:validationMessages.card.card_cvv_length })
    cvv: string; */
}

