---
title: "WorkspaceExactData · types"
url: https://developers.dagio.ai/fr/reference/types-workspace-exact-data/
---

# WorkspaceExactData · types

   
                                   
                                                                            
                                            
                  
           
          
   

Les types ci-dessous définissent les objets nommés et leurs relations. Les propriétés héritées sont incluses dans les tableaux. Les types dérivés d’un schéma renvoient à sa structure; une déclaration TypeScript ne remplace pas les contrôles sémantiques du compilateur.

## ManagedExactDataValueType

Declared numeric value type and unit used to type the expression program.

```typescript
export type ManagedExactDataValueType = z.infer<typeof managedExactDataValueTypeSchema>;
```

## ManagedExactDataExpression

Typed numeric syntax has no scripts, arbitrary function names or unregistered conversion operators.

```typescript
export type ManagedExactDataExpression =
  | { kind: 'literal'; type: ManagedExactDataValueType; value: string }
  | { kind: 'field'; type: ManagedExactDataValueType; field: ExactFieldReference }
  | { kind: 'calculation'; type: ManagedExactDataValueType; key: string }
  | {
      kind: 'arithmetic';
      operator: 'add' | 'subtract' | 'multiply' | 'divide';
      left: ManagedExactDataExpression;
      right: ManagedExactDataExpression;
      type: ManagedExactDataValueType;
      rounding: Rounding | null;
      unitOperation: { key: string; version: string } | null;
    }
  | {
      kind: 'round';
      operand: ManagedExactDataExpression;
      type: ManagedExactDataValueType;
      rounding: Rounding;
    }
  | {
      kind: 'conditional';
      condition: ManagedExactDataPredicate;
      whenTrue: ManagedExactDataExpression;
      whenFalse: ManagedExactDataExpression;
      type: ManagedExactDataValueType;
    }
  | {
      kind: 'conversion';
      conversionKey: string;
      conversionVersion: string;
      operand: ManagedExactDataExpression;
      type: ManagedExactDataValueType;
    }
  | {
      kind: 'query-total';
      queryKey: string;
      parameters: Record<string, z.infer<typeof workspaceQueryBindingSchema>>;
      operator: 'count' | 'count-distinct';
      type: ManagedExactDataValueType;
    }
  | {
      kind: 'aggregate';
      queryKey: string;
      parameters: Record<string, z.infer<typeof workspaceQueryBindingSchema>>;
      field: ExactFieldReference;
      operator: 'sum' | 'min' | 'max' | 'average';
      type: ManagedExactDataValueType;
      rounding: Rounding | null;
    };
```

## ManagedExactDataPredicate

Boolean conditions compare typed exact values; truthiness never substitutes for an explicit comparison.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `kind` | `"compare"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `operator` | `"eq" \| "ne" \| "lt" \| "lte" \| "gt" \| "gte"` | **Requis.** Comparaison ou opération de la variante; la valeur doit correspondre au type attendu. |
| `left` | `ManagedExactDataExpression` | **Requis.** Définit « left » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `right` | `ManagedExactDataExpression` | **Requis.** Définit « right » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |

```typescript
export interface ManagedExactDataPredicate {
  kind: 'compare';
  operator: 'eq' | 'ne' | 'lt' | 'lte' | 'gt' | 'gte';
  left: ManagedExactDataExpression;
  right: ManagedExactDataExpression;
}
```

## WorkspaceExactData

Admitted units, conversions and calculations; evaluation belongs to the shared numeric engine.

```typescript
export type WorkspaceExactData = z.infer<typeof workspaceExactDataSchema>;
```

[Toutes les références](https://developers.dagio.ai/fr/reference/)

<!-- surface-examples:start -->

## Exemples appliqués : Texte requis et choix métier

Entreprise utilise une saisie texte obligatoire; État réutilise une liste de valeurs déclarées.

### Configuration

Fragment à placer dans `forms[].fields[]`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/workspace-model-foundation/).

```json
{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "company",
  "label": "Entreprise",
  "input": "text",
  "binding": {
    "kind": "field",
    "fieldKey": "company"
  },
  "required": true,
  "ruleKeys": [],
  "options": []
}
```

### Variante et raccordement

Fragment à placer dans `forms[].fields[]`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/workspace-model-foundation/).

```json
{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "status",
  "label": "État",
  "input": "choice",
  "binding": {
    "kind": "field",
    "fieldKey": "status"
  },
  "required": true,
  "ruleKeys": [],
  "options": [
    "prospect",
    "active"
  ]
}
```

### Exemple de disposition UI

La disposition illustrative ci-dessous situe cette configuration dans l’app Clients/Soumissions. Chaque fragment s’insère à l’emplacement indiqué; ses références aux Fields, Queries et Actions correspondent aux déclarations du Model.

1. Identité du client
2. Notes et suivi
3. Paramètres
4. Soumissions liées

<!-- surface-examples:end -->
