/*
 * Copyright (C) 2019, HuntLabs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

module hunt.database.driver.postgresql.impl.codec.PgColumnDesc;

import hunt.database.driver.postgresql.impl.codec.DataType;
import hunt.database.driver.postgresql.impl.codec.DataTypeDesc;
import hunt.database.driver.postgresql.impl.codec.DataFormat;
import hunt.database.driver.postgresql.impl.codec.PgColumnDesc;

/**
 * @author <a href="mailto:emad.albloushi@gmail.com">Emad Alblueshi</a>
 */

class PgColumnDesc {

    string name;
    int relationId;
    // DataType dataType;
    DataTypeDesc dataType;
    DataFormat dataFormat; // are we sure that ????
    short relationAttributeNo;
    short length;
    int typeModifier;

    this(string name, int relationId, short relationAttributeNo, 
            DataTypeDesc dataType, short length, int typeModifier, DataFormat dataFormat) {
        this.name = name;
        this.dataType = dataType;
        this.dataFormat = dataFormat; // dataType.supportsBinary ? DataFormat.BINARY : DataFormat.TEXT;
        // this.dataType = DataTypeDescs.valueOf(cast(int)dataType);
        // this.dataFormat = dataFormat;
        this.length = length;
        this.relationId = relationId;
        this.relationAttributeNo = relationAttributeNo;
        this.typeModifier = typeModifier;
    }
}