Files
orchard/backend/app/schemas.py
Mondo Diaz 7d0a6e2595 Rename terminology to industry standard terms
- Grove → Project
- Tree → Package
- Fruit → Artifact
- Graft → Tag
- Cultivate → Upload
- Harvest → Download

Updated across:
- Backend models, schemas, and routes
- Frontend types, API client, and components
- README documentation
- API endpoints now use /project/:project/packages pattern
2025-12-08 10:38:44 -06:00

102 lines
1.7 KiB
Python

from datetime import datetime
from typing import Optional, List
from pydantic import BaseModel
from uuid import UUID
# Project schemas
class ProjectCreate(BaseModel):
name: str
description: Optional[str] = None
is_public: bool = True
class ProjectResponse(BaseModel):
id: UUID
name: str
description: Optional[str]
is_public: bool
created_at: datetime
updated_at: datetime
created_by: str
class Config:
from_attributes = True
# Package schemas
class PackageCreate(BaseModel):
name: str
description: Optional[str] = None
class PackageResponse(BaseModel):
id: UUID
project_id: UUID
name: str
description: Optional[str]
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
# Artifact schemas
class ArtifactResponse(BaseModel):
id: str
size: int
content_type: Optional[str]
original_name: Optional[str]
created_at: datetime
created_by: str
ref_count: int
class Config:
from_attributes = True
# Tag schemas
class TagCreate(BaseModel):
name: str
artifact_id: str
class TagResponse(BaseModel):
id: UUID
package_id: UUID
name: str
artifact_id: str
created_at: datetime
created_by: str
class Config:
from_attributes = True
# Upload response
class UploadResponse(BaseModel):
artifact_id: str
size: int
project: str
package: str
tag: Optional[str]
# Consumer schemas
class ConsumerResponse(BaseModel):
id: UUID
package_id: UUID
project_url: str
last_access: datetime
created_at: datetime
class Config:
from_attributes = True
# Health check
class HealthResponse(BaseModel):
status: str
version: str = "1.0.0"