from pydantic import BaseModel, Field
from typing import Optional


class TicketCreateRequest(BaseModel):
    user_name: str = Field(..., min_length=1, max_length=150)
    subject: str = Field(..., min_length=3, max_length=255)
    description: str = Field(..., min_length=3, max_length=2000)
    issue_category: str = Field(..., min_length=1, max_length=100)
    issue_subcategory: Optional[str] = None
    device_name: Optional[str] = None
    priority: str = "Medium"


class TicketResponse(BaseModel):
    ticket_no: str
    status: str
    message: str