init
This commit is contained in:
70
backend/api/schemas/certificates.py
Normal file
70
backend/api/schemas/certificates.py
Normal file
@@ -0,0 +1,70 @@
|
||||
"""API payloads for certificate operations."""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import List, Optional
|
||||
|
||||
from ninja import Schema
|
||||
|
||||
|
||||
class SkillSchema(Schema):
|
||||
id: int
|
||||
name: str
|
||||
description: Optional[str] = None
|
||||
|
||||
|
||||
class CertificateTemplateOut(Schema):
|
||||
id: int
|
||||
event_id: int
|
||||
event_title: str
|
||||
image_url: Optional[str]
|
||||
skill_ids: List[int]
|
||||
skills: List[SkillSchema]
|
||||
|
||||
|
||||
class CertificateGenerationItem(Schema):
|
||||
user_id: int
|
||||
score: int
|
||||
title: Optional[str] = None
|
||||
description: Optional[str] = None
|
||||
skill_ids: Optional[List[int]] = None
|
||||
issued_at: Optional[datetime] = None
|
||||
expires_at: Optional[datetime] = None
|
||||
|
||||
|
||||
class CertificateGenerationPayload(Schema):
|
||||
entries: List[CertificateGenerationItem]
|
||||
default_title: Optional[str] = None
|
||||
default_description: Optional[str] = None
|
||||
|
||||
|
||||
class UserCertificateOut(Schema):
|
||||
id: int
|
||||
user_id: int
|
||||
user_name: str
|
||||
event_id: int
|
||||
title: str
|
||||
certificate_id: str
|
||||
certificate_code: str
|
||||
score: int
|
||||
score_label: str
|
||||
image_url: Optional[str]
|
||||
|
||||
|
||||
class CertificateGenerationResponse(Schema):
|
||||
certificates: List[UserCertificateOut]
|
||||
|
||||
|
||||
class CertificateVerificationOut(Schema):
|
||||
certificate_id: str
|
||||
certificate_code: str
|
||||
user_id: int
|
||||
user_name: str
|
||||
event_id: int
|
||||
event_title: str
|
||||
title: str
|
||||
score: int
|
||||
score_label: str
|
||||
issued_at: datetime
|
||||
expires_at: Optional[datetime] = None
|
||||
image_url: Optional[str] = None
|
||||
skills: List[str]
|
||||
Reference in New Issue
Block a user