curl -s -b kc.txt -X POST http://localhost:3000/api/v1/schemas \
-H "X-Requested-With: XMLHttpRequest" -H "Content-Type: application/json" \
-d '{
"name": "customer",
"displayName": "Customer",
"entityType": "custom",
"schemaType": "customer",
"fields": [
{ "name": "customer_id", "displayName": "Customer Id", "dataType": "varchar", "isPrimaryKey": true, "isNullable": false, "isUnique": true, "ordinal": 1 },
{ "name": "first_name", "displayName": "First Name", "dataType": "varchar", "isNullable": true, "ordinal": 2 },
{ "name": "last_name", "displayName": "Last Name", "dataType": "varchar", "isNullable": true, "ordinal": 3 },
{ "name": "email", "displayName": "Email", "dataType": "varchar", "isNullable": true, "ordinal": 4 },
{ "name": "phone", "displayName": "Phone", "dataType": "varchar", "isNullable": true, "ordinal": 5 },
{ "name": "address", "displayName": "Address", "dataType": "varchar", "isNullable": true, "ordinal": 6 },
{ "name": "city", "displayName": "City", "dataType": "varchar", "isNullable": true, "ordinal": 7 },
{ "name": "state", "displayName": "State", "dataType": "varchar", "isNullable": true, "ordinal": 8 },
{ "name": "zip_code", "displayName": "Zip Code", "dataType": "varchar", "isNullable": true, "ordinal": 9 },
{ "name": "country", "displayName": "Country", "dataType": "varchar", "isNullable": true, "ordinal": 10 },
{ "name": "signup_date", "displayName": "Signup Date", "dataType": "date", "isNullable": true, "ordinal": 11 },
{ "name": "segment", "displayName": "Segment", "dataType": "varchar", "isNullable": true, "ordinal": 12 },
{ "name": "status", "displayName": "Status", "dataType": "varchar", "isNullable": true, "ordinal": 13 },
{ "name": "lifetime_value", "displayName": "Lifetime Value", "dataType": "numeric", "precision": 12, "scale": 2, "isNullable": true, "ordinal": 14 },
{ "name": "orders_count", "displayName": "Orders Count", "dataType": "integer", "isNullable": true, "ordinal": 15 }
]
}'
# → { "id": "<SCHEMA_ID>", "tableName": "ds_customer", "fields": [ ... 15 ... ] }