from pydantic import BaseModel, Field
from typing import Optional, List

# Copyright [2025] [IBM]
# Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
# See the LICENSE file in the project root for license information.

# This file has been modified with the assistance of IBM Bob AI tool

class CreateProjectRequest(BaseModel):
    """Request model for creating a new project"""

    name: Optional[str] = Field(
        default=None, description="The name of the new project"
    )
    description: Optional[str] = Field(
        default="MCP generated project", description="A description for the new project"
    )
    type: Optional[str] = Field(
        default=None,
        description="The project type where the project is generated",
        examples=[
            "cpd: IBM Cloud Pak for Data (CPD) projects",
            "wx,df: IBM watsonx projects (wx) or Data Fabric (df)",
        ],
    )
    storage: Optional[str] = Field(
        default=None,
        description="Storage where the project stores",
        examples=[
            "Cloud Object Storage instance or resource crn value (bmcos_object_storage)",
            "assetfiles",
        ],
    )
    tags: Optional[List] = Field(
        default=[],
        description="List of user defined tags that are attached to the project",
    )


class CreateProjectResponse(BaseModel):
    name: str = Field(..., description="The project name which is created")
    location: str = Field(..., description="API to access the newly created project.")
