# PhotographyWorkspaceDto

Source: https://frameleaf.app/docs/api/schema/PhotographyWorkspaceDto/

```json
{
  "properties": {
    "revision": {
      "format": "uuid",
      "nullable": true,
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "type": "string"
    },
    "shoots": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "albumId": {
            "description": "Owned source album; null retains an unavailable existing shoot",
            "format": "uuid",
            "nullable": true,
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
            "type": "string"
          },
          "assetCount": {
            "maximum": 9007199254740991,
            "minimum": 0,
            "nullable": true,
            "type": "integer"
          },
          "client": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "coverAssetId": {
            "format": "uuid",
            "nullable": true,
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
            "type": "string"
          },
          "date": {
            "format": "date",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
            "type": "string"
          },
          "name": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "stage": {
            "enum": [
              "Imported",
              "Selected",
              "Edited",
              "Proofing",
              "Delivered"
            ],
            "type": "string"
          },
          "type": {
            "enum": [
              "Family portrait",
              "Wedding",
              "Portrait",
              "Editorial",
              "Commercial",
              "Event",
              "Personal"
            ],
            "type": "string"
          },
          "unavailable": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "albumId",
          "name",
          "client",
          "type",
          "date",
          "stage",
          "unavailable",
          "coverAssetId",
          "assetCount"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "revision",
    "shoots"
  ],
  "type": "object"
}
```
