anansi::operations! {
    migrations::CreateRecord {
        prefix: "auth",
        name: "user",
        fields: vec![
            (
                "id",
                records::BigInt::field().primary_key()
            ),
            (
                "username",
                records::VarChar::<150>::field().unique()
            ),
            (
                "email",
                records::Text::field().null()
            ),
            (
                "password",
                records::VarChar::<150>::field()
            ),
            (
                "secret",
                records::Text::field().null()
            ),
            (
                "is_active",
                records::Boolean::field().default("false")
            ),
            (
                "last_login",
                records::DateTime::field().auto_now_add()
            ),
            (
                "date_joined",
                records::DateTime::field().auto_now_add()
            ),
        ],
    },
    migrations::CreateRecord {
        prefix: "auth",
        name: "usertuple",
        fields: vec![
            (
                "id",
                records::BigInt::field().primary_key()
            ),
            (
                "subject_namespace",
                records::Text::field()
            ),
            (
                "subject_key",
                records::BigInt::field()
            ),
            (
                "subject_predicate",
                records::Text::field().null()
            ),
            (
                "object_key",
                records::BigInt::field()
            ),
            (
                "object_predicate",
                records::Text::field()
            ),
        ],
    },
    migrations::CreateRecord {
        prefix: "auth",
        name: "group",
        fields: vec![
            (
                "id",
                records::BigInt::field().primary_key()
            ),
            (
                "groupname",
                records::VarChar::<150>::field()
            ),
        ],
    },
    migrations::CreateRecord {
        prefix: "auth",
        name: "grouptuple",
        fields: vec![
            (
                "id",
                records::BigInt::field().primary_key()
            ),
            (
                "subject_namespace",
                records::Text::field()
            ),
            (
                "subject_key",
                records::BigInt::field()
            ),
            (
                "subject_predicate",
                records::Text::field().null()
            ),
            (
                "object_key",
                records::BigInt::field()
            ),
            (
                "object_predicate",
                records::Text::field()
            ),
        ],
    },
    migrations::CreateRecord {
        prefix: "auth",
        name: "filter",
        fields: vec![
            (
                "id",
                records::BigInt::field().primary_key()
            ),
            (
                "table_name",
                records::Text::field()
            ),
            (
                "filter_name",
                records::Text::field()
            ),
            (
                "filter",
                records::Text::field()
            ),
            (
                "raw_query",
                records::Text::field()
            ),
        ],
    },
    migrations::CreateRecord {
        prefix: "auth",
        name: "filtertuple",
        fields: vec![
            (
                "id",
                records::BigInt::field().primary_key()
            ),
            (
                "subject_namespace",
                records::Text::field()
            ),
            (
                "subject_key",
                records::BigInt::field()
            ),
            (
                "subject_predicate",
                records::Text::field().null()
            ),
            (
                "object_key",
                records::BigInt::field()
            ),
            (
                "object_predicate",
                records::Text::field()
            ),
        ],
    },
}
