from typing import Optional
from uuid import UUID

from pydantic import BaseModel


class GeoServerConfigResponse(BaseModel):
    gs_base_url: Optional[str]
    gs_admin_user: Optional[str]
    gs_datastore_name: str
    default_extent: Optional[dict]
    srid: int


class ProjectMetaResponse(BaseModel):
    project_id: UUID
    name: str
    code: str
    description: Optional[str]
    gs_workspace: str
    status: str
    project_role: str
    geoserver: Optional[GeoServerConfigResponse]


class ProjectSummaryResponse(BaseModel):
    project_id: UUID
    name: str
    code: str
    description: Optional[str]
    gs_workspace: str
    status: str
    project_role: str
