/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.ctecinf.orm;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.sql.Types;

/**
 *
 * @author Cássio Conceição
 * @since 24/09/2019
 * @version 1909
 * @see http://ctecinf.com.br/
 */
@Target(value = {ElementType.METHOD, ElementType.FIELD})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Column {

    String name() default "";

    int type() default Types.VARCHAR;

    boolean isNotNull() default false;

    String label() default "";

    String mask() default "";

    String[] defaultValues() default {};

    boolean isAutoComplete() default true;

    Class<? extends Model> join() default NullModel.class;

    int formColumn() default -1;

    int formRow() default -1;

    int formNumColumnsOccupped() default 1;

    boolean formColumnFill() default true;

    boolean tableDisplay() default false;

    boolean isCrypt() default false;
}
