{
  "schemaVersion": "1.0",
  "metadata": {
    "id": "dashport_showcase",
    "title": "Dashport Demo",
    "locale": "tr"
  },
  "compatibility": {
    "contract": "1.0",
    "requiredCapabilities": [
      "table",
      "form",
      "dashboard",
      "settings",
      "text",
      "textarea",
      "lookup",
      "enum",
      "boolean",
      "money",
      "number",
      "percent",
      "date",
      "kpi",
      "bar",
      "line",
      "navigate",
      "request",
      "message"
    ]
  },
  "connections": {
    "demo": {
      "origin": "https://demo.example.test"
    }
  },
  "operations": {
    "customers_list": {
      "connection": "demo",
      "method": "GET",
      "path": "/customers",
      "auth": "none",
      "response": {
        "data": "/data",
        "total": "/total"
      },
      "pagination": {
        "mode": "page",
        "parameter": "page",
        "sizeParameter": "per_page",
        "pageSize": 10
      }
    },
    "customers_create": {
      "connection": "demo",
      "method": "POST",
      "path": "/customers",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "email": {
          "kind": "binding",
          "source": "form",
          "pointer": "/email"
        },
        "phone": {
          "kind": "binding",
          "source": "form",
          "pointer": "/phone"
        },
        "company": {
          "kind": "binding",
          "source": "form",
          "pointer": "/company"
        },
        "status": {
          "kind": "binding",
          "source": "form",
          "pointer": "/status"
        },
        "balance": {
          "kind": "binding",
          "source": "form",
          "pointer": "/balance"
        },
        "joined_on": {
          "kind": "binding",
          "source": "form",
          "pointer": "/joined_on"
        }
      }
    },
    "customers_update": {
      "connection": "demo",
      "method": "PATCH",
      "path": "/customers/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "email": {
          "kind": "binding",
          "source": "form",
          "pointer": "/email"
        },
        "phone": {
          "kind": "binding",
          "source": "form",
          "pointer": "/phone"
        },
        "company": {
          "kind": "binding",
          "source": "form",
          "pointer": "/company"
        },
        "status": {
          "kind": "binding",
          "source": "form",
          "pointer": "/status"
        },
        "balance": {
          "kind": "binding",
          "source": "form",
          "pointer": "/balance"
        },
        "joined_on": {
          "kind": "binding",
          "source": "form",
          "pointer": "/joined_on"
        }
      }
    },
    "customers_delete": {
      "connection": "demo",
      "method": "DELETE",
      "path": "/customers/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      }
    },
    "companies_list": {
      "connection": "demo",
      "method": "GET",
      "path": "/companies",
      "auth": "none",
      "response": {
        "data": "/data",
        "total": "/total"
      },
      "pagination": {
        "mode": "page",
        "parameter": "page",
        "sizeParameter": "per_page",
        "pageSize": 10
      }
    },
    "companies_create": {
      "connection": "demo",
      "method": "POST",
      "path": "/companies",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "city": {
          "kind": "binding",
          "source": "form",
          "pointer": "/city"
        },
        "sector": {
          "kind": "binding",
          "source": "form",
          "pointer": "/sector"
        },
        "active": {
          "kind": "binding",
          "source": "form",
          "pointer": "/active"
        }
      }
    },
    "companies_update": {
      "connection": "demo",
      "method": "PATCH",
      "path": "/companies/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "city": {
          "kind": "binding",
          "source": "form",
          "pointer": "/city"
        },
        "sector": {
          "kind": "binding",
          "source": "form",
          "pointer": "/sector"
        },
        "active": {
          "kind": "binding",
          "source": "form",
          "pointer": "/active"
        }
      }
    },
    "companies_delete": {
      "connection": "demo",
      "method": "DELETE",
      "path": "/companies/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      }
    },
    "products_list": {
      "connection": "demo",
      "method": "GET",
      "path": "/products",
      "auth": "none",
      "response": {
        "data": "/data",
        "total": "/total"
      },
      "pagination": {
        "mode": "page",
        "parameter": "page",
        "sizeParameter": "per_page",
        "pageSize": 10
      }
    },
    "products_create": {
      "connection": "demo",
      "method": "POST",
      "path": "/products",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "sku": {
          "kind": "binding",
          "source": "form",
          "pointer": "/sku"
        },
        "price": {
          "kind": "binding",
          "source": "form",
          "pointer": "/price"
        },
        "stock": {
          "kind": "binding",
          "source": "form",
          "pointer": "/stock"
        },
        "active": {
          "kind": "binding",
          "source": "form",
          "pointer": "/active"
        }
      }
    },
    "products_update": {
      "connection": "demo",
      "method": "PATCH",
      "path": "/products/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "sku": {
          "kind": "binding",
          "source": "form",
          "pointer": "/sku"
        },
        "price": {
          "kind": "binding",
          "source": "form",
          "pointer": "/price"
        },
        "stock": {
          "kind": "binding",
          "source": "form",
          "pointer": "/stock"
        },
        "active": {
          "kind": "binding",
          "source": "form",
          "pointer": "/active"
        }
      }
    },
    "products_delete": {
      "connection": "demo",
      "method": "DELETE",
      "path": "/products/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      }
    },
    "orders_list": {
      "connection": "demo",
      "method": "GET",
      "path": "/orders",
      "auth": "none",
      "response": {
        "data": "/data",
        "total": "/total"
      },
      "pagination": {
        "mode": "page",
        "parameter": "page",
        "sizeParameter": "per_page",
        "pageSize": 10
      }
    },
    "orders_create": {
      "connection": "demo",
      "method": "POST",
      "path": "/orders",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "customer": {
          "kind": "binding",
          "source": "form",
          "pointer": "/customer"
        },
        "amount": {
          "kind": "binding",
          "source": "form",
          "pointer": "/amount"
        },
        "status": {
          "kind": "binding",
          "source": "form",
          "pointer": "/status"
        },
        "ordered_on": {
          "kind": "binding",
          "source": "form",
          "pointer": "/ordered_on"
        }
      }
    },
    "orders_update": {
      "connection": "demo",
      "method": "PATCH",
      "path": "/orders/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "customer": {
          "kind": "binding",
          "source": "form",
          "pointer": "/customer"
        },
        "amount": {
          "kind": "binding",
          "source": "form",
          "pointer": "/amount"
        },
        "status": {
          "kind": "binding",
          "source": "form",
          "pointer": "/status"
        },
        "ordered_on": {
          "kind": "binding",
          "source": "form",
          "pointer": "/ordered_on"
        }
      }
    },
    "orders_delete": {
      "connection": "demo",
      "method": "DELETE",
      "path": "/orders/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      }
    },
    "invoices_list": {
      "connection": "demo",
      "method": "GET",
      "path": "/invoices",
      "auth": "none",
      "response": {
        "data": "/data",
        "total": "/total"
      },
      "pagination": {
        "mode": "page",
        "parameter": "page",
        "sizeParameter": "per_page",
        "pageSize": 10
      }
    },
    "invoices_create": {
      "connection": "demo",
      "method": "POST",
      "path": "/invoices",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "customer": {
          "kind": "binding",
          "source": "form",
          "pointer": "/customer"
        },
        "amount": {
          "kind": "binding",
          "source": "form",
          "pointer": "/amount"
        },
        "tax": {
          "kind": "binding",
          "source": "form",
          "pointer": "/tax"
        },
        "issued_on": {
          "kind": "binding",
          "source": "form",
          "pointer": "/issued_on"
        },
        "paid": {
          "kind": "binding",
          "source": "form",
          "pointer": "/paid"
        }
      }
    },
    "invoices_update": {
      "connection": "demo",
      "method": "PATCH",
      "path": "/invoices/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "customer": {
          "kind": "binding",
          "source": "form",
          "pointer": "/customer"
        },
        "amount": {
          "kind": "binding",
          "source": "form",
          "pointer": "/amount"
        },
        "tax": {
          "kind": "binding",
          "source": "form",
          "pointer": "/tax"
        },
        "issued_on": {
          "kind": "binding",
          "source": "form",
          "pointer": "/issued_on"
        },
        "paid": {
          "kind": "binding",
          "source": "form",
          "pointer": "/paid"
        }
      }
    },
    "invoices_delete": {
      "connection": "demo",
      "method": "DELETE",
      "path": "/invoices/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      }
    },
    "tasks_list": {
      "connection": "demo",
      "method": "GET",
      "path": "/tasks",
      "auth": "none",
      "response": {
        "data": "/data",
        "total": "/total"
      },
      "pagination": {
        "mode": "page",
        "parameter": "page",
        "sizeParameter": "per_page",
        "pageSize": 10
      }
    },
    "tasks_create": {
      "connection": "demo",
      "method": "POST",
      "path": "/tasks",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "assigned_to": {
          "kind": "binding",
          "source": "form",
          "pointer": "/assigned_to"
        },
        "priority": {
          "kind": "binding",
          "source": "form",
          "pointer": "/priority"
        },
        "due_on": {
          "kind": "binding",
          "source": "form",
          "pointer": "/due_on"
        },
        "done": {
          "kind": "binding",
          "source": "form",
          "pointer": "/done"
        },
        "notes": {
          "kind": "binding",
          "source": "form",
          "pointer": "/notes"
        }
      }
    },
    "tasks_update": {
      "connection": "demo",
      "method": "PATCH",
      "path": "/tasks/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      },
      "body": {
        "name": {
          "kind": "binding",
          "source": "form",
          "pointer": "/name"
        },
        "assigned_to": {
          "kind": "binding",
          "source": "form",
          "pointer": "/assigned_to"
        },
        "priority": {
          "kind": "binding",
          "source": "form",
          "pointer": "/priority"
        },
        "due_on": {
          "kind": "binding",
          "source": "form",
          "pointer": "/due_on"
        },
        "done": {
          "kind": "binding",
          "source": "form",
          "pointer": "/done"
        },
        "notes": {
          "kind": "binding",
          "source": "form",
          "pointer": "/notes"
        }
      }
    },
    "tasks_delete": {
      "connection": "demo",
      "method": "DELETE",
      "path": "/tasks/{id}",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "pathParams": {
        "id": {
          "kind": "binding",
          "source": "record",
          "pointer": "/id"
        }
      }
    },
    "revenue": {
      "connection": "demo",
      "method": "GET",
      "path": "/metrics",
      "auth": "none",
      "response": {
        "data": "/data/revenue"
      }
    },
    "customer_count": {
      "connection": "demo",
      "method": "GET",
      "path": "/metrics",
      "auth": "none",
      "response": {
        "data": "/data/customers"
      }
    },
    "order_count": {
      "connection": "demo",
      "method": "GET",
      "path": "/metrics",
      "auth": "none",
      "response": {
        "data": "/data/orders"
      }
    },
    "open_tasks": {
      "connection": "demo",
      "method": "GET",
      "path": "/metrics",
      "auth": "none",
      "response": {
        "data": "/data/open_tasks"
      }
    },
    "series": {
      "connection": "demo",
      "method": "GET",
      "path": "/metrics",
      "auth": "none",
      "response": {
        "data": "/data/series"
      }
    },
    "preferences_load": {
      "connection": "demo",
      "method": "GET",
      "path": "/preferences",
      "auth": "none",
      "response": {
        "data": "/data"
      }
    },
    "preferences_save": {
      "connection": "demo",
      "method": "PATCH",
      "path": "/preferences",
      "auth": "none",
      "response": {
        "data": "/data",
        "fieldErrors": "/error/fields"
      },
      "body": {
        "title": {
          "kind": "binding",
          "source": "form",
          "pointer": "/title"
        },
        "monthly_budget": {
          "kind": "binding",
          "source": "form",
          "pointer": "/monthly_budget"
        },
        "reminder_on": {
          "kind": "binding",
          "source": "form",
          "pointer": "/reminder_on"
        },
        "notify": {
          "kind": "binding",
          "source": "form",
          "pointer": "/notify"
        }
      }
    },
    "companies_search": {
      "connection": "demo",
      "method": "GET",
      "path": "/companies",
      "auth": "none",
      "response": {
        "data": "/data",
        "nextCursor": "/next"
      },
      "query": {
        "q": {
          "kind": "binding",
          "source": "input",
          "pointer": "/search"
        }
      }
    },
    "customers_search": {
      "connection": "demo",
      "method": "GET",
      "path": "/customers",
      "auth": "none",
      "response": {
        "data": "/data",
        "nextCursor": "/next"
      },
      "query": {
        "q": {
          "kind": "binding",
          "source": "input",
          "pointer": "/search"
        }
      }
    }
  },
  "auth": {
    "mode": "none"
  },
  "permissions": {},
  "rules": {},
  "actions": {
    "saved": {
      "type": "message",
      "text": "Kaydedildi."
    },
    "customers_new": {
      "type": "navigate",
      "view": "customers_new"
    },
    "customers_edit": {
      "type": "navigate",
      "view": "customers_edit"
    },
    "customers_add": {
      "type": "request",
      "operation": "customers_create",
      "next": "saved"
    },
    "customers_save": {
      "type": "request",
      "operation": "customers_update",
      "next": "saved"
    },
    "customers_remove": {
      "type": "request",
      "operation": "customers_delete",
      "confirmation": "Bu demo kaydı silinsin mi?",
      "next": "customers_reload"
    },
    "companies_new": {
      "type": "navigate",
      "view": "companies_new"
    },
    "companies_edit": {
      "type": "navigate",
      "view": "companies_edit"
    },
    "companies_add": {
      "type": "request",
      "operation": "companies_create",
      "next": "saved"
    },
    "companies_save": {
      "type": "request",
      "operation": "companies_update",
      "next": "saved"
    },
    "companies_remove": {
      "type": "request",
      "operation": "companies_delete",
      "confirmation": "Bu demo kaydı silinsin mi?",
      "next": "companies_reload"
    },
    "products_new": {
      "type": "navigate",
      "view": "products_new"
    },
    "products_edit": {
      "type": "navigate",
      "view": "products_edit"
    },
    "products_add": {
      "type": "request",
      "operation": "products_create",
      "next": "saved"
    },
    "products_save": {
      "type": "request",
      "operation": "products_update",
      "next": "saved"
    },
    "products_remove": {
      "type": "request",
      "operation": "products_delete",
      "confirmation": "Bu demo kaydı silinsin mi?",
      "next": "products_reload"
    },
    "orders_new": {
      "type": "navigate",
      "view": "orders_new"
    },
    "orders_edit": {
      "type": "navigate",
      "view": "orders_edit"
    },
    "orders_add": {
      "type": "request",
      "operation": "orders_create",
      "next": "saved"
    },
    "orders_save": {
      "type": "request",
      "operation": "orders_update",
      "next": "saved"
    },
    "orders_remove": {
      "type": "request",
      "operation": "orders_delete",
      "confirmation": "Bu demo kaydı silinsin mi?",
      "next": "orders_reload"
    },
    "invoices_new": {
      "type": "navigate",
      "view": "invoices_new"
    },
    "invoices_edit": {
      "type": "navigate",
      "view": "invoices_edit"
    },
    "invoices_add": {
      "type": "request",
      "operation": "invoices_create",
      "next": "saved"
    },
    "invoices_save": {
      "type": "request",
      "operation": "invoices_update",
      "next": "saved"
    },
    "invoices_remove": {
      "type": "request",
      "operation": "invoices_delete",
      "confirmation": "Bu demo kaydı silinsin mi?",
      "next": "invoices_reload"
    },
    "tasks_new": {
      "type": "navigate",
      "view": "tasks_new"
    },
    "tasks_edit": {
      "type": "navigate",
      "view": "tasks_edit"
    },
    "tasks_add": {
      "type": "request",
      "operation": "tasks_create",
      "next": "saved"
    },
    "tasks_save": {
      "type": "request",
      "operation": "tasks_update",
      "next": "saved"
    },
    "tasks_remove": {
      "type": "request",
      "operation": "tasks_delete",
      "confirmation": "Bu demo kaydı silinsin mi?",
      "next": "tasks_reload"
    },
    "open_orders": {
      "type": "navigate",
      "view": "orders"
    },
    "customers_reload": {
      "type": "refresh",
      "view": "customers"
    },
    "companies_reload": {
      "type": "refresh",
      "view": "companies"
    },
    "products_reload": {
      "type": "refresh",
      "view": "products"
    },
    "orders_reload": {
      "type": "refresh",
      "view": "orders"
    },
    "invoices_reload": {
      "type": "refresh",
      "view": "invoices"
    },
    "tasks_reload": {
      "type": "refresh",
      "view": "tasks"
    }
  },
  "resources": {
    "customers": {
      "label": "Müşteriler",
      "fields": {
        "name": {
          "type": "text",
          "label": "Ad soyad",
          "required": true
        },
        "email": {
          "type": "text",
          "label": "E-posta",
          "required": true
        },
        "phone": {
          "type": "text",
          "label": "Telefon"
        },
        "company": {
          "type": "lookup",
          "label": "Şirket",
          "lookup": {
            "operation": "companies_search",
            "mode": "search",
            "multiple": false,
            "minCharacters": 1,
            "debounceMs": 300,
            "valuePointer": "/id",
            "labelPointer": "/name"
          }
        },
        "status": {
          "type": "enum",
          "label": "Durum",
          "options": [
            {
              "value": "active",
              "label": "Aktif"
            },
            {
              "value": "lead",
              "label": "Potansiyel"
            },
            {
              "value": "inactive",
              "label": "Pasif"
            }
          ],
          "default": "active"
        },
        "balance": {
          "type": "money",
          "label": "Bakiye",
          "number": {
            "scale": 2,
            "rounding": "half_up",
            "min": "0",
            "currency": "TRY"
          }
        },
        "joined_on": {
          "type": "date",
          "label": "Kayıt tarihi",
          "required": true
        }
      },
      "list": "customers_list",
      "create": "customers_create",
      "update": "customers_update",
      "delete": "customers_delete"
    },
    "companies": {
      "label": "Şirketler",
      "fields": {
        "name": {
          "type": "text",
          "label": "Şirket adı",
          "required": true
        },
        "city": {
          "type": "text",
          "label": "Şehir",
          "required": true
        },
        "sector": {
          "type": "text",
          "label": "Sektör"
        },
        "active": {
          "type": "boolean",
          "label": "Aktif",
          "default": true
        }
      },
      "list": "companies_list",
      "create": "companies_create",
      "update": "companies_update",
      "delete": "companies_delete"
    },
    "products": {
      "label": "Ürünler",
      "fields": {
        "name": {
          "type": "text",
          "label": "Ürün adı",
          "required": true
        },
        "sku": {
          "type": "text",
          "label": "Stok kodu",
          "required": true
        },
        "price": {
          "type": "money",
          "label": "Fiyat",
          "number": {
            "scale": 2,
            "rounding": "half_up",
            "min": "0",
            "currency": "TRY"
          },
          "required": true
        },
        "stock": {
          "type": "number",
          "label": "Stok",
          "number": {
            "scale": 0,
            "rounding": "half_up",
            "min": "0"
          },
          "required": true
        },
        "active": {
          "type": "boolean",
          "label": "Satışta",
          "default": true
        }
      },
      "list": "products_list",
      "create": "products_create",
      "update": "products_update",
      "delete": "products_delete"
    },
    "orders": {
      "label": "Siparişler",
      "fields": {
        "name": {
          "type": "text",
          "label": "Sipariş no",
          "required": true
        },
        "customer": {
          "type": "lookup",
          "label": "Müşteri",
          "lookup": {
            "operation": "customers_search",
            "mode": "search",
            "multiple": false,
            "minCharacters": 1,
            "debounceMs": 300,
            "valuePointer": "/id",
            "labelPointer": "/name"
          }
        },
        "amount": {
          "type": "money",
          "label": "Toplam",
          "number": {
            "scale": 2,
            "rounding": "half_up",
            "min": "0",
            "currency": "TRY"
          },
          "required": true
        },
        "status": {
          "type": "enum",
          "label": "Durum",
          "options": [
            {
              "value": "new",
              "label": "Yeni"
            },
            {
              "value": "processing",
              "label": "Hazırlanıyor"
            },
            {
              "value": "shipped",
              "label": "Kargoda"
            },
            {
              "value": "complete",
              "label": "Tamamlandı"
            }
          ],
          "default": "new"
        },
        "ordered_on": {
          "type": "date",
          "label": "Sipariş tarihi",
          "required": true
        }
      },
      "list": "orders_list",
      "create": "orders_create",
      "update": "orders_update",
      "delete": "orders_delete"
    },
    "invoices": {
      "label": "Faturalar",
      "fields": {
        "name": {
          "type": "text",
          "label": "Fatura no",
          "required": true
        },
        "customer": {
          "type": "lookup",
          "label": "Müşteri",
          "lookup": {
            "operation": "customers_search",
            "mode": "search",
            "multiple": false,
            "minCharacters": 1,
            "debounceMs": 300,
            "valuePointer": "/id",
            "labelPointer": "/name"
          }
        },
        "amount": {
          "type": "money",
          "label": "Tutar",
          "number": {
            "scale": 2,
            "rounding": "half_up",
            "min": "0",
            "currency": "TRY"
          },
          "required": true
        },
        "tax": {
          "type": "percent",
          "label": "KDV",
          "number": {
            "scale": 3,
            "rounding": "half_up",
            "min": "0"
          }
        },
        "issued_on": {
          "type": "date",
          "label": "Fatura tarihi",
          "required": true
        },
        "paid": {
          "type": "boolean",
          "label": "Ödendi",
          "default": true
        }
      },
      "list": "invoices_list",
      "create": "invoices_create",
      "update": "invoices_update",
      "delete": "invoices_delete"
    },
    "tasks": {
      "label": "Görevler",
      "fields": {
        "name": {
          "type": "text",
          "label": "Görev",
          "required": true
        },
        "assigned_to": {
          "type": "text",
          "label": "Sorumlu",
          "required": true
        },
        "priority": {
          "type": "enum",
          "label": "Öncelik",
          "options": [
            {
              "value": "normal",
              "label": "Normal"
            },
            {
              "value": "low",
              "label": "Düşük"
            },
            {
              "value": "high",
              "label": "Yüksek"
            }
          ],
          "default": "normal"
        },
        "due_on": {
          "type": "date",
          "label": "Son tarih",
          "required": true
        },
        "done": {
          "type": "boolean",
          "label": "Tamamlandı",
          "default": false
        },
        "notes": {
          "type": "textarea",
          "label": "Notlar"
        }
      },
      "list": "tasks_list",
      "create": "tasks_create",
      "update": "tasks_update",
      "delete": "tasks_delete"
    }
  },
  "views": {
    "customers": {
      "type": "table",
      "title": "Müşteriler",
      "resource": "customers",
      "columns": [
        "name",
        "email",
        "status",
        "balance"
      ],
      "actions": [
        "customers_new",
        "customers_edit",
        "customers_remove"
      ]
    },
    "customers_new": {
      "type": "form",
      "title": "Müşteriler · Yeni kayıt",
      "resource": "customers",
      "fields": [
        "name",
        "email",
        "phone",
        "company",
        "status",
        "balance",
        "joined_on"
      ],
      "actions": [
        "customers_add"
      ]
    },
    "customers_edit": {
      "type": "form",
      "title": "Müşteriler · Düzenle",
      "resource": "customers",
      "fields": [
        "name",
        "email",
        "phone",
        "company",
        "status",
        "balance",
        "joined_on"
      ],
      "actions": [
        "customers_save"
      ]
    },
    "companies": {
      "type": "table",
      "title": "Şirketler",
      "resource": "companies",
      "columns": [
        "name",
        "city",
        "sector"
      ],
      "actions": [
        "companies_new",
        "companies_edit",
        "companies_remove"
      ]
    },
    "companies_new": {
      "type": "form",
      "title": "Şirketler · Yeni kayıt",
      "resource": "companies",
      "fields": [
        "name",
        "city",
        "sector",
        "active"
      ],
      "actions": [
        "companies_add"
      ]
    },
    "companies_edit": {
      "type": "form",
      "title": "Şirketler · Düzenle",
      "resource": "companies",
      "fields": [
        "name",
        "city",
        "sector",
        "active"
      ],
      "actions": [
        "companies_save"
      ]
    },
    "products": {
      "type": "table",
      "title": "Ürünler",
      "resource": "products",
      "columns": [
        "name",
        "sku",
        "price",
        "stock"
      ],
      "actions": [
        "products_new",
        "products_edit",
        "products_remove"
      ]
    },
    "products_new": {
      "type": "form",
      "title": "Ürünler · Yeni kayıt",
      "resource": "products",
      "fields": [
        "name",
        "sku",
        "price",
        "stock",
        "active"
      ],
      "actions": [
        "products_add"
      ]
    },
    "products_edit": {
      "type": "form",
      "title": "Ürünler · Düzenle",
      "resource": "products",
      "fields": [
        "name",
        "sku",
        "price",
        "stock",
        "active"
      ],
      "actions": [
        "products_save"
      ]
    },
    "orders": {
      "type": "table",
      "title": "Siparişler",
      "resource": "orders",
      "columns": [
        "name",
        "amount",
        "status",
        "ordered_on"
      ],
      "actions": [
        "orders_new",
        "orders_edit",
        "orders_remove"
      ]
    },
    "orders_new": {
      "type": "form",
      "title": "Siparişler · Yeni kayıt",
      "resource": "orders",
      "fields": [
        "name",
        "customer",
        "amount",
        "status",
        "ordered_on"
      ],
      "actions": [
        "orders_add"
      ]
    },
    "orders_edit": {
      "type": "form",
      "title": "Siparişler · Düzenle",
      "resource": "orders",
      "fields": [
        "name",
        "customer",
        "amount",
        "status",
        "ordered_on"
      ],
      "actions": [
        "orders_save"
      ]
    },
    "invoices": {
      "type": "table",
      "title": "Faturalar",
      "resource": "invoices",
      "columns": [
        "name",
        "amount",
        "issued_on",
        "paid"
      ],
      "actions": [
        "invoices_new",
        "invoices_edit",
        "invoices_remove"
      ]
    },
    "invoices_new": {
      "type": "form",
      "title": "Faturalar · Yeni kayıt",
      "resource": "invoices",
      "fields": [
        "name",
        "customer",
        "amount",
        "tax",
        "issued_on",
        "paid"
      ],
      "actions": [
        "invoices_add"
      ]
    },
    "invoices_edit": {
      "type": "form",
      "title": "Faturalar · Düzenle",
      "resource": "invoices",
      "fields": [
        "name",
        "customer",
        "amount",
        "tax",
        "issued_on",
        "paid"
      ],
      "actions": [
        "invoices_save"
      ]
    },
    "tasks": {
      "type": "table",
      "title": "Görevler",
      "resource": "tasks",
      "columns": [
        "name",
        "assigned_to",
        "priority",
        "done"
      ],
      "actions": [
        "tasks_new",
        "tasks_edit",
        "tasks_remove"
      ]
    },
    "tasks_new": {
      "type": "form",
      "title": "Görevler · Yeni kayıt",
      "resource": "tasks",
      "fields": [
        "name",
        "assigned_to",
        "priority",
        "due_on",
        "done",
        "notes"
      ],
      "actions": [
        "tasks_add"
      ]
    },
    "tasks_edit": {
      "type": "form",
      "title": "Görevler · Düzenle",
      "resource": "tasks",
      "fields": [
        "name",
        "assigned_to",
        "priority",
        "due_on",
        "done",
        "notes"
      ],
      "actions": [
        "tasks_save"
      ]
    },
    "overview": {
      "type": "dashboard",
      "title": "Genel Bakış",
      "widgets": [
        {
          "type": "kpi",
          "title": "Toplam sipariş tutarı",
          "operation": "revenue",
          "valuePointer": "",
          "clickAction": "open_orders"
        },
        {
          "type": "kpi",
          "title": "Müşteri sayısı",
          "operation": "customer_count",
          "valuePointer": ""
        },
        {
          "type": "kpi",
          "title": "Sipariş sayısı",
          "operation": "order_count",
          "valuePointer": ""
        },
        {
          "type": "kpi",
          "title": "Açık görevler",
          "operation": "open_tasks",
          "valuePointer": ""
        },
        {
          "type": "bar",
          "title": "Aylık satışlar",
          "operation": "series",
          "labelPointer": "/label",
          "valuePointer": "/value"
        },
        {
          "type": "line",
          "title": "Satış eğilimi",
          "operation": "series",
          "labelPointer": "/label",
          "valuePointer": "/value"
        }
      ]
    },
    "preferences": {
      "type": "settings",
      "title": "Şirket Ayarları",
      "settingsGroup": "preferences"
    }
  },
  "settings": {
    "preferences": {
      "title": "Şirket ayarları",
      "scope": "project",
      "load": "preferences_load",
      "save": "preferences_save",
      "fields": {
        "title": {
          "type": "text",
          "label": "Şirket adı",
          "required": true
        },
        "monthly_budget": {
          "type": "money",
          "label": "Aylık bütçe",
          "number": {
            "scale": 2,
            "rounding": "half_up",
            "min": "0",
            "currency": "TRY"
          }
        },
        "reminder_on": {
          "type": "date",
          "label": "Hatırlatma tarihi",
          "required": true
        },
        "notify": {
          "type": "boolean",
          "label": "Bildirimler",
          "default": true
        }
      },
      "access": {}
    }
  },
  "navigation": [
    {
      "view": "overview",
      "label": "Genel Bakış"
    },
    {
      "view": "customers",
      "label": "Müşteriler"
    },
    {
      "view": "companies",
      "label": "Şirketler"
    },
    {
      "view": "products",
      "label": "Ürünler"
    },
    {
      "view": "orders",
      "label": "Siparişler"
    },
    {
      "view": "invoices",
      "label": "Faturalar"
    },
    {
      "view": "tasks",
      "label": "Görevler"
    },
    {
      "view": "preferences",
      "label": "Şirket Ayarları"
    }
  ]
}
