syntax = "proto3";
package factset.protobuf.stach.v2.table;

option csharp_namespace = "FactSet.Protobuf.Stach.V2.Table";
option go_package = "github.com/factset/stachschema-sdks/go/fds/protobuf/stach/v2/table";
option java_package = "com.factset.protobuf.stach.v2.table";
option java_outer_classname = "ColumnDefinitionProto";

import "fds/protobuf/stach/v2/table/DataFormat.proto";

// A definition of a column
message ColumnDefinition {
  // The id; used for referring to a column internal to a package
  string id = 1;
  
  // The name; used for referring to a column external to a package
  string name = 2;

  // The description; used for rendering human readable headers
  string description = 3;
  
  // The data type; correlates with the chosen property for `ColumnData.data`
  string type = 4;

  // Whether this column is a dimension or not
  bool is_dimension = 5;

  // Whether this column is hidden or not
  bool is_hidden = 6;

  // The next sibling column in the collapsed column tree
  string next_sibling_id = 7;

  // The parent column in the collapsed column tree
  string parent_id = 8;

  // The header id
  string header_id = 9;

  // The data format
  DataFormat format = 10;
}
