initial commit - LeDiscord plateforme des copains
This commit is contained in:
47
backend/schemas/ticket.py
Normal file
47
backend/schemas/ticket.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional
|
||||
from datetime import datetime
|
||||
from models.ticket import TicketType, TicketStatus, TicketPriority
|
||||
|
||||
class TicketBase(BaseModel):
|
||||
title: str = Field(..., min_length=1, max_length=200)
|
||||
description: str = Field(..., min_length=1)
|
||||
ticket_type: TicketType = Field(default=TicketType.OTHER)
|
||||
priority: TicketPriority = Field(default=TicketPriority.MEDIUM)
|
||||
|
||||
class TicketCreate(TicketBase):
|
||||
pass
|
||||
|
||||
class TicketUpdate(BaseModel):
|
||||
title: Optional[str] = Field(None, min_length=1, max_length=200)
|
||||
description: Optional[str] = Field(None, min_length=1)
|
||||
ticket_type: Optional[TicketType] = None
|
||||
status: Optional[TicketStatus] = None
|
||||
priority: Optional[TicketPriority] = None
|
||||
assigned_to: Optional[int] = None
|
||||
admin_notes: Optional[str] = None
|
||||
|
||||
class TicketResponse(TicketBase):
|
||||
id: int
|
||||
status: TicketStatus
|
||||
user_id: int
|
||||
assigned_to: Optional[int]
|
||||
screenshot_path: Optional[str]
|
||||
admin_notes: Optional[str]
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
resolved_at: Optional[datetime]
|
||||
|
||||
# User information
|
||||
user_name: str
|
||||
user_email: str
|
||||
assigned_admin_name: Optional[str] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class TicketAdminUpdate(BaseModel):
|
||||
status: Optional[TicketStatus] = None
|
||||
priority: Optional[TicketPriority] = None
|
||||
assigned_to: Optional[int] = None
|
||||
admin_notes: Optional[str] = None
|
||||
Reference in New Issue
Block a user