Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // WithGlobalUniqueID sets the universal ids options to the migration. // If this option is enabled, ent migration will allocate a 1<<32 range // for the ids of each entity (table). // Note that this option cannot be applied on tables that already exist. WithGlobalUniqueID = schema.WithGlobalUniqueID // WithDropColumn sets the drop column option to the migration. // If this option is enabled, ent migration will drop old columns // that were used for both fields and edges. This defaults to false. WithDropColumn = schema.WithDropColumn // WithDropIndex sets the drop index option to the migration. // If this option is enabled, ent migration will drop old indexes // that were defined in the schema. This defaults to false. // Note that unique constraints are defined using `UNIQUE INDEX`, // and therefore, it's recommended to enable this option to get more // flexibility in the schema changes. WithDropIndex = schema.WithDropIndex // WithForeignKeys enables creating foreign-key in schema DDL. This defaults to true. WithForeignKeys = schema.WithForeignKeys )
View Source
var ( // LionAuthProvidersColumns holds the columns for the "lion_auth_providers" table. LionAuthProvidersColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "deleted_at", Type: field.TypeTime, Nullable: true}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "code", Type: field.TypeString, Unique: true, Size: 32}, {Name: "provider_type", Type: field.TypeInt}, {Name: "provider_status", Type: field.TypeInt, Default: 1}, {Name: "display_name", Type: field.TypeString, Size: 256, Default: ""}, {Name: "description", Type: field.TypeString, Default: ""}, {Name: "sort_order", Type: field.TypeInt, Default: 100}, {Name: "icon_url", Type: field.TypeString, Default: ""}, {Name: "config", Type: field.TypeJSON, Nullable: true}, {Name: "secret_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "protected", Type: field.TypeBool, Default: false}, } // LionAuthProvidersTable holds the schema information for the "lion_auth_providers" table. LionAuthProvidersTable = &schema.Table{ Name: "lion_auth_providers", Columns: LionAuthProvidersColumns, PrimaryKey: []*schema.Column{LionAuthProvidersColumns[0]}, Indexes: []*schema.Index{ { Name: "authproviders_provider_type", Unique: false, Columns: []*schema.Column{LionAuthProvidersColumns[7]}, }, { Name: "authproviders_provider_status", Unique: false, Columns: []*schema.Column{LionAuthProvidersColumns[8]}, }, { Name: "authproviders_sort_order", Unique: false, Columns: []*schema.Column{LionAuthProvidersColumns[11]}, }, }, } // LionCredentialsColumns holds the columns for the "lion_credentials" table. LionCredentialsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "deleted_at", Type: field.TypeTime, Nullable: true}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "code", Type: field.TypeString, Unique: true, Size: 32}, {Name: "display_name", Type: field.TypeString, Size: 256, Default: ""}, {Name: "description", Type: field.TypeString, Nullable: true}, {Name: "credential_type", Type: field.TypeInt, Default: 0}, {Name: "credential_algorithm", Type: field.TypeInt, Default: 0}, {Name: "credential_usage", Type: field.TypeInt, Default: 0}, {Name: "credential_visibility", Type: field.TypeInt, Default: 1}, {Name: "credential_status", Type: field.TypeInt, Default: 1}, {Name: "credential_source", Type: field.TypeInt, Default: 0}, {Name: "protected", Type: field.TypeBool, Default: false}, {Name: "fingerprint", Type: field.TypeString, Nullable: true}, {Name: "api_key", Type: field.TypeString, Nullable: true}, {Name: "api_secret_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "public_key", Type: field.TypeBytes, Nullable: true}, {Name: "private_key_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "passphrase_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "certificate", Type: field.TypeBytes, Nullable: true}, {Name: "ca_chain", Type: field.TypeJSON, Nullable: true}, {Name: "license_key_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "signature", Type: field.TypeBytes, Nullable: true}, {Name: "symmetric_key_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "not_before", Type: field.TypeTime, Nullable: true}, {Name: "expires_at", Type: field.TypeTime, Nullable: true}, {Name: "metadata", Type: field.TypeJSON, Nullable: true}, } // LionCredentialsTable holds the schema information for the "lion_credentials" table. LionCredentialsTable = &schema.Table{ Name: "lion_credentials", Columns: LionCredentialsColumns, PrimaryKey: []*schema.Column{LionCredentialsColumns[0]}, Indexes: []*schema.Index{ { Name: "credentials_fingerprint", Unique: true, Columns: []*schema.Column{LionCredentialsColumns[16]}, Annotation: &entsql.IndexAnnotation{ Where: "fingerprint IS NOT NULL AND fingerprint != ''", }, }, { Name: "credentials_credential_type", Unique: false, Columns: []*schema.Column{LionCredentialsColumns[9]}, }, { Name: "credentials_credential_status", Unique: false, Columns: []*schema.Column{LionCredentialsColumns[13]}, }, { Name: "credentials_credential_usage", Unique: false, Columns: []*schema.Column{LionCredentialsColumns[11]}, }, { Name: "credentials_credential_source", Unique: false, Columns: []*schema.Column{LionCredentialsColumns[14]}, }, { Name: "credentials_expires_at", Unique: false, Columns: []*schema.Column{LionCredentialsColumns[28]}, }, { Name: "credentials_created_by", Unique: false, Columns: []*schema.Column{LionCredentialsColumns[4]}, }, }, } // LionDepartmentsColumns holds the columns for the "lion_departments" table. LionDepartmentsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "deleted_at", Type: field.TypeTime, Nullable: true}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "parent_id", Type: field.TypeInt, Default: 0}, {Name: "code", Type: field.TypeString, Size: 256}, {Name: "display_name", Type: field.TypeString, Size: 256}, {Name: "department_type", Type: field.TypeInt, Default: 0}, {Name: "department_status", Type: field.TypeInt, Default: 1}, {Name: "sort_order", Type: field.TypeInt, Default: 100}, {Name: "email_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "phone_number_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "address_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "cost_center_code", Type: field.TypeString, Nullable: true}, {Name: "budget_item_code", Type: field.TypeString, Nullable: true}, {Name: "max_members", Type: field.TypeInt, Default: 0}, {Name: "external_id", Type: field.TypeString, Nullable: true}, {Name: "visibility", Type: field.TypeInt, Default: 0}, {Name: "metadata", Type: field.TypeJSON, Nullable: true}, {Name: "description", Type: field.TypeString, Default: ""}, {Name: "protected", Type: field.TypeBool, Default: false}, } // LionDepartmentsTable holds the schema information for the "lion_departments" table. LionDepartmentsTable = &schema.Table{ Name: "lion_departments", Columns: LionDepartmentsColumns, PrimaryKey: []*schema.Column{LionDepartmentsColumns[0]}, } // LionSettingsColumns holds the columns for the "lion_settings" table. LionSettingsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "category", Type: field.TypeString, Size: 64}, {Name: "setting_key", Type: field.TypeString, Size: 128}, {Name: "setting_value", Type: field.TypeString, Size: 2147483647, Default: ""}, {Name: "value_type", Type: field.TypeString, Size: 16, Default: "string"}, {Name: "description", Type: field.TypeString, Size: 255, Default: ""}, {Name: "protected", Type: field.TypeBool, Default: false}, } // LionSettingsTable holds the schema information for the "lion_settings" table. LionSettingsTable = &schema.Table{ Name: "lion_settings", Columns: LionSettingsColumns, PrimaryKey: []*schema.Column{LionSettingsColumns[0]}, Indexes: []*schema.Index{ { Name: "globalsettings_category_setting_key", Unique: true, Columns: []*schema.Column{LionSettingsColumns[5], LionSettingsColumns[6]}, }, { Name: "globalsettings_category", Unique: false, Columns: []*schema.Column{LionSettingsColumns[5]}, }, }, } // LionGroupsColumns holds the columns for the "lion_groups" table. LionGroupsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "deleted_at", Type: field.TypeTime, Nullable: true}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "code", Type: field.TypeString, Unique: true, Size: 128}, {Name: "display_name", Type: field.TypeString, Size: 256}, {Name: "group_type", Type: field.TypeInt, Default: 0}, {Name: "group_status", Type: field.TypeInt, Default: 0}, {Name: "sort_order", Type: field.TypeInt, Default: 100}, {Name: "parent_id", Type: field.TypeInt, Default: 0}, {Name: "max_members", Type: field.TypeInt, Default: 0}, {Name: "metadata", Type: field.TypeJSON}, {Name: "ref_id", Type: field.TypeInt, Default: 0}, {Name: "ref_expr", Type: field.TypeString, Size: 4096, Default: ""}, {Name: "visibility", Type: field.TypeInt, Default: 0}, {Name: "description", Type: field.TypeString, Default: ""}, {Name: "departments_lion_groups", Type: field.TypeInt, Nullable: true}, } // LionGroupsTable holds the schema information for the "lion_groups" table. LionGroupsTable = &schema.Table{ Name: "lion_groups", Columns: LionGroupsColumns, PrimaryKey: []*schema.Column{LionGroupsColumns[0]}, ForeignKeys: []*schema.ForeignKey{ { Symbol: "lion_groups_lion_departments_lion_groups", Columns: []*schema.Column{LionGroupsColumns[18]}, RefColumns: []*schema.Column{LionDepartmentsColumns[0]}, OnDelete: schema.SetNull, }, }, Indexes: []*schema.Index{ { Name: "groups_code", Unique: true, Columns: []*schema.Column{LionGroupsColumns[6]}, }, { Name: "groups_group_type", Unique: false, Columns: []*schema.Column{LionGroupsColumns[8]}, }, { Name: "groups_group_status", Unique: false, Columns: []*schema.Column{LionGroupsColumns[9]}, }, { Name: "groups_group_type_ref_id", Unique: false, Columns: []*schema.Column{LionGroupsColumns[8], LionGroupsColumns[14]}, }, }, } // LionMenusColumns holds the columns for the "lion_menus" table. LionMenusColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "parent_id", Type: field.TypeInt64, Default: 0}, {Name: "code", Type: field.TypeString, Size: 128}, {Name: "display_name", Type: field.TypeString, Size: 64, Default: ""}, {Name: "route_path", Type: field.TypeString, Size: 255, Default: ""}, {Name: "component", Type: field.TypeString, Size: 255, Default: ""}, {Name: "icon", Type: field.TypeString, Size: 64, Default: ""}, {Name: "sort_order", Type: field.TypeInt, Default: 100}, {Name: "visibility", Type: field.TypeString, Size: 16, Default: "global"}, {Name: "menu_status", Type: field.TypeString, Size: 16, Default: "active"}, {Name: "metadata", Type: field.TypeJSON, Nullable: true}, {Name: "description", Type: field.TypeString, Default: ""}, {Name: "protected", Type: field.TypeBool, Default: false}, } // LionMenusTable holds the schema information for the "lion_menus" table. LionMenusTable = &schema.Table{ Name: "lion_menus", Columns: LionMenusColumns, PrimaryKey: []*schema.Column{LionMenusColumns[0]}, Indexes: []*schema.Index{ { Name: "menus_code", Unique: true, Columns: []*schema.Column{LionMenusColumns[6]}, }, { Name: "menus_parent_id", Unique: false, Columns: []*schema.Column{LionMenusColumns[5]}, }, }, } // LionOauth2ClientsColumns holds the columns for the "lion_oauth2_clients" table. LionOauth2ClientsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "deleted_at", Type: field.TypeTime, Nullable: true}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "client_id", Type: field.TypeString, Unique: true, Size: 64}, {Name: "client_secret_hash", Type: field.TypeString, Size: 128}, {Name: "display_name", Type: field.TypeString, Size: 128, Default: ""}, {Name: "redirect_uris", Type: field.TypeJSON, Nullable: true}, {Name: "client_status", Type: field.TypeInt, Default: 1}, {Name: "grant_types", Type: field.TypeJSON, Nullable: true}, {Name: "scopes", Type: field.TypeJSON, Nullable: true}, {Name: "logo_url", Type: field.TypeString, Size: 512, Default: ""}, {Name: "description", Type: field.TypeString, Size: 512, Default: ""}, } // LionOauth2ClientsTable holds the schema information for the "lion_oauth2_clients" table. LionOauth2ClientsTable = &schema.Table{ Name: "lion_oauth2_clients", Columns: LionOauth2ClientsColumns, PrimaryKey: []*schema.Column{LionOauth2ClientsColumns[0]}, Indexes: []*schema.Index{ { Name: "oauth2clients_client_status", Unique: false, Columns: []*schema.Column{LionOauth2ClientsColumns[10]}, }, }, } // LionOauth2CodesColumns holds the columns for the "lion_oauth2_codes" table. LionOauth2CodesColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "code_hash", Type: field.TypeString, Unique: true, Size: 64}, {Name: "client_id", Type: field.TypeString, Size: 64}, {Name: "redirect_uri", Type: field.TypeString, Size: 512}, {Name: "user_id", Type: field.TypeInt, Default: 0}, {Name: "username", Type: field.TypeString, Size: 255, Default: ""}, {Name: "scopes", Type: field.TypeJSON, Nullable: true}, {Name: "state", Type: field.TypeString, Size: 256, Default: ""}, {Name: "nonce", Type: field.TypeString, Size: 256, Default: ""}, {Name: "code_challenge", Type: field.TypeString, Size: 128, Default: ""}, {Name: "code_challenge_method", Type: field.TypeString, Size: 16, Default: ""}, {Name: "expires_at", Type: field.TypeTime}, {Name: "consumed_at", Type: field.TypeTime, Nullable: true}, } // LionOauth2CodesTable holds the schema information for the "lion_oauth2_codes" table. LionOauth2CodesTable = &schema.Table{ Name: "lion_oauth2_codes", Columns: LionOauth2CodesColumns, PrimaryKey: []*schema.Column{LionOauth2CodesColumns[0]}, Indexes: []*schema.Index{ { Name: "oauth2codes_client_id_expires_at", Unique: false, Columns: []*schema.Column{LionOauth2CodesColumns[4], LionOauth2CodesColumns[13]}, }, }, } // LionPoliciesColumns holds the columns for the "lion_policies" table. LionPoliciesColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "deleted_at", Type: field.TypeTime, Nullable: true}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "code", Type: field.TypeString, Size: 256}, {Name: "display_name", Type: field.TypeString}, {Name: "policy_status", Type: field.TypeInt, Default: 0}, {Name: "statements", Type: field.TypeJSON}, {Name: "protected", Type: field.TypeBool, Default: false}, {Name: "description", Type: field.TypeString, Default: ""}, } // LionPoliciesTable holds the schema information for the "lion_policies" table. LionPoliciesTable = &schema.Table{ Name: "lion_policies", Columns: LionPoliciesColumns, PrimaryKey: []*schema.Column{LionPoliciesColumns[0]}, Indexes: []*schema.Index{ { Name: "policies_code", Unique: true, Columns: []*schema.Column{LionPoliciesColumns[6]}, }, }, } // LionPrincipalRolesColumns holds the columns for the "lion_principal_roles" table. LionPrincipalRolesColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "principal_type", Type: field.TypeInt, Default: 0}, {Name: "principal_id", Type: field.TypeInt}, {Name: "binding_status", Type: field.TypeInt, Default: 1}, {Name: "expires_at", Type: field.TypeTime, Nullable: true}, {Name: "metadata", Type: field.TypeJSON, Nullable: true}, {Name: "description", Type: field.TypeString, Default: ""}, {Name: "role_id", Type: field.TypeInt}, } // LionPrincipalRolesTable holds the schema information for the "lion_principal_roles" table. LionPrincipalRolesTable = &schema.Table{ Name: "lion_principal_roles", Columns: LionPrincipalRolesColumns, PrimaryKey: []*schema.Column{LionPrincipalRolesColumns[0]}, ForeignKeys: []*schema.ForeignKey{ { Symbol: "lion_principal_roles_lion_roles_lion_principal_roles", Columns: []*schema.Column{LionPrincipalRolesColumns[11]}, RefColumns: []*schema.Column{LionRolesColumns[0]}, OnDelete: schema.NoAction, }, }, Indexes: []*schema.Index{ { Name: "principalroles_principal_type_principal_id_role_id", Unique: true, Columns: []*schema.Column{LionPrincipalRolesColumns[5], LionPrincipalRolesColumns[6], LionPrincipalRolesColumns[11]}, }, { Name: "principalroles_role_id", Unique: false, Columns: []*schema.Column{LionPrincipalRolesColumns[11]}, }, { Name: "principalroles_principal_type_principal_id", Unique: false, Columns: []*schema.Column{LionPrincipalRolesColumns[5], LionPrincipalRolesColumns[6]}, }, { Name: "principalroles_binding_status", Unique: false, Columns: []*schema.Column{LionPrincipalRolesColumns[7]}, }, }, } // LionRoleMenusColumns holds the columns for the "lion_role_menus" table. LionRoleMenusColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "permission_scope", Type: field.TypeInt, Default: 1}, {Name: "description", Type: field.TypeString, Default: ""}, {Name: "is_recursive", Type: field.TypeBool, Default: false}, {Name: "menu_id", Type: field.TypeInt}, {Name: "role_id", Type: field.TypeInt}, } // LionRoleMenusTable holds the schema information for the "lion_role_menus" table. LionRoleMenusTable = &schema.Table{ Name: "lion_role_menus", Columns: LionRoleMenusColumns, PrimaryKey: []*schema.Column{LionRoleMenusColumns[0]}, ForeignKeys: []*schema.ForeignKey{ { Symbol: "lion_role_menus_lion_menus_lion_role_menus", Columns: []*schema.Column{LionRoleMenusColumns[8]}, RefColumns: []*schema.Column{LionMenusColumns[0]}, OnDelete: schema.NoAction, }, { Symbol: "lion_role_menus_lion_roles_lion_role_menus", Columns: []*schema.Column{LionRoleMenusColumns[9]}, RefColumns: []*schema.Column{LionRolesColumns[0]}, OnDelete: schema.NoAction, }, }, Indexes: []*schema.Index{ { Name: "rolemenus_role_id_menu_id", Unique: true, Columns: []*schema.Column{LionRoleMenusColumns[9], LionRoleMenusColumns[8]}, }, { Name: "rolemenus_menu_id", Unique: false, Columns: []*schema.Column{LionRoleMenusColumns[8]}, }, }, } // LionRolePoliciesColumns holds the columns for the "lion_role_policies" table. LionRolePoliciesColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "metadata", Type: field.TypeJSON, Nullable: true}, {Name: "description", Type: field.TypeString, Default: ""}, {Name: "policy_id", Type: field.TypeInt}, {Name: "role_id", Type: field.TypeInt}, } // LionRolePoliciesTable holds the schema information for the "lion_role_policies" table. LionRolePoliciesTable = &schema.Table{ Name: "lion_role_policies", Columns: LionRolePoliciesColumns, PrimaryKey: []*schema.Column{LionRolePoliciesColumns[0]}, ForeignKeys: []*schema.ForeignKey{ { Symbol: "lion_role_policies_lion_policies_lion_role_policies", Columns: []*schema.Column{LionRolePoliciesColumns[7]}, RefColumns: []*schema.Column{LionPoliciesColumns[0]}, OnDelete: schema.NoAction, }, { Symbol: "lion_role_policies_lion_roles_lion_role_policies", Columns: []*schema.Column{LionRolePoliciesColumns[8]}, RefColumns: []*schema.Column{LionRolesColumns[0]}, OnDelete: schema.NoAction, }, }, Indexes: []*schema.Index{ { Name: "rolepolicies_role_id_policy_id", Unique: true, Columns: []*schema.Column{LionRolePoliciesColumns[8], LionRolePoliciesColumns[7]}, }, { Name: "rolepolicies_role_id", Unique: false, Columns: []*schema.Column{LionRolePoliciesColumns[8]}, }, { Name: "rolepolicies_policy_id", Unique: false, Columns: []*schema.Column{LionRolePoliciesColumns[7]}, }, }, } // LionRolesColumns holds the columns for the "lion_roles" table. LionRolesColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "deleted_at", Type: field.TypeTime, Nullable: true}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "parent_id", Type: field.TypeInt, Default: 0}, {Name: "code", Type: field.TypeString, Size: 256}, {Name: "display_name", Type: field.TypeString, Size: 256}, {Name: "role_type", Type: field.TypeInt, Default: 0}, {Name: "role_status", Type: field.TypeInt, Default: 0}, {Name: "sort_order", Type: field.TypeInt, Default: 100}, {Name: "description", Type: field.TypeString, Default: ""}, {Name: "protected", Type: field.TypeBool, Default: false}, } // LionRolesTable holds the schema information for the "lion_roles" table. LionRolesTable = &schema.Table{ Name: "lion_roles", Columns: LionRolesColumns, PrimaryKey: []*schema.Column{LionRolesColumns[0]}, Indexes: []*schema.Index{ { Name: "roles_code", Unique: true, Columns: []*schema.Column{LionRolesColumns[7]}, }, }, } // LionUserIdentitiesColumns holds the columns for the "lion_user_identities" table. LionUserIdentitiesColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "provider_user_id", Type: field.TypeString}, {Name: "provider_union_id", Type: field.TypeString, Nullable: true}, {Name: "password_hash", Type: field.TypeString, Default: ""}, {Name: "mfa_enabled", Type: field.TypeBool, Default: false}, {Name: "mfa_secret_encrypted", Type: field.TypeBytes}, {Name: "mfa_recovery_codes_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "access_token_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "refresh_token_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "password_changed_at", Type: field.TypeTime, Nullable: true}, {Name: "password_expires_at", Type: field.TypeTime, Nullable: true}, {Name: "token_expires_at", Type: field.TypeTime, Nullable: true}, {Name: "last_login_at", Type: field.TypeTime, Nullable: true}, {Name: "provider_id", Type: field.TypeInt}, {Name: "user_id", Type: field.TypeInt}, } // LionUserIdentitiesTable holds the schema information for the "lion_user_identities" table. LionUserIdentitiesTable = &schema.Table{ Name: "lion_user_identities", Columns: LionUserIdentitiesColumns, PrimaryKey: []*schema.Column{LionUserIdentitiesColumns[0]}, ForeignKeys: []*schema.ForeignKey{ { Symbol: "lion_user_identities_lion_auth_providers_lion_user_identities", Columns: []*schema.Column{LionUserIdentitiesColumns[17]}, RefColumns: []*schema.Column{LionAuthProvidersColumns[0]}, OnDelete: schema.NoAction, }, { Symbol: "lion_user_identities_lion_users_lion_user_identities", Columns: []*schema.Column{LionUserIdentitiesColumns[18]}, RefColumns: []*schema.Column{LionUsersColumns[0]}, OnDelete: schema.NoAction, }, }, Indexes: []*schema.Index{ { Name: "useridentities_user_id_provider_id", Unique: true, Columns: []*schema.Column{LionUserIdentitiesColumns[18], LionUserIdentitiesColumns[17]}, }, }, } // LionUserMembershipsColumns holds the columns for the "lion_user_memberships" table. LionUserMembershipsColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "target_type", Type: field.TypeInt, Default: 0}, {Name: "target_id", Type: field.TypeInt}, {Name: "member_role", Type: field.TypeInt, Default: 0}, {Name: "member_status", Type: field.TypeInt, Default: 0}, {Name: "member_type", Type: field.TypeInt, Default: 0}, {Name: "joined_at", Type: field.TypeTime, Nullable: true}, {Name: "expires_at", Type: field.TypeTime, Nullable: true}, {Name: "metadata", Type: field.TypeJSON, Nullable: true}, {Name: "description", Type: field.TypeString, Default: ""}, {Name: "user_id", Type: field.TypeInt}, } // LionUserMembershipsTable holds the schema information for the "lion_user_memberships" table. LionUserMembershipsTable = &schema.Table{ Name: "lion_user_memberships", Columns: LionUserMembershipsColumns, PrimaryKey: []*schema.Column{LionUserMembershipsColumns[0]}, ForeignKeys: []*schema.ForeignKey{ { Symbol: "lion_user_memberships_lion_users_lion_user_memberships", Columns: []*schema.Column{LionUserMembershipsColumns[14]}, RefColumns: []*schema.Column{LionUsersColumns[0]}, OnDelete: schema.NoAction, }, }, Indexes: []*schema.Index{ { Name: "usermemberships_user_id_target_type_target_id", Unique: true, Columns: []*schema.Column{LionUserMembershipsColumns[14], LionUserMembershipsColumns[5], LionUserMembershipsColumns[6]}, }, { Name: "usermemberships_target_type_target_id", Unique: false, Columns: []*schema.Column{LionUserMembershipsColumns[5], LionUserMembershipsColumns[6]}, }, { Name: "usermemberships_user_id", Unique: true, Columns: []*schema.Column{LionUserMembershipsColumns[14]}, Annotation: &entsql.IndexAnnotation{ Where: "target_type = 2 AND member_type = 1", }, }, }, } // LionUserProfilesColumns holds the columns for the "lion_user_profiles" table. LionUserProfilesColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "deleted_at", Type: field.TypeTime, Nullable: true}, {Name: "user_id", Type: field.TypeInt}, {Name: "attr_key", Type: field.TypeString}, {Name: "attr_value", Type: field.TypeString}, } // LionUserProfilesTable holds the schema information for the "lion_user_profiles" table. LionUserProfilesTable = &schema.Table{ Name: "lion_user_profiles", Columns: LionUserProfilesColumns, PrimaryKey: []*schema.Column{LionUserProfilesColumns[0]}, Indexes: []*schema.Index{ { Name: "userprofiles_user_id_attr_key", Unique: true, Columns: []*schema.Column{LionUserProfilesColumns[4], LionUserProfilesColumns[5]}, }, }, } // LionUsersColumns holds the columns for the "lion_users" table. LionUsersColumns = []*schema.Column{ {Name: "id", Type: field.TypeInt, Increment: true}, {Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"}, {Name: "deleted_at", Type: field.TypeTime, Nullable: true}, {Name: "created_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "updated_by", Type: field.TypeInt64, Nullable: true, Default: 0}, {Name: "username", Type: field.TypeString, Unique: true, Size: 255}, {Name: "realname_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "user_type", Type: field.TypeInt, Default: 0}, {Name: "user_status", Type: field.TypeInt, Default: 0}, {Name: "national_id_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "national_id_hash", Type: field.TypeString, Nullable: true}, {Name: "nickname", Type: field.TypeString, Nullable: true}, {Name: "profile", Type: field.TypeString, Nullable: true, Size: 500}, {Name: "picture", Type: field.TypeString, Nullable: true}, {Name: "website", Type: field.TypeString, Nullable: true}, {Name: "email_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "email_hash", Type: field.TypeString, Nullable: true}, {Name: "email_verified", Type: field.TypeBool, Default: false}, {Name: "gender", Type: field.TypeInt, Default: 0}, {Name: "birthdate", Type: field.TypeTime, Nullable: true}, {Name: "timezone", Type: field.TypeString, Nullable: true}, {Name: "locale", Type: field.TypeString, Nullable: true}, {Name: "phone_number_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "phone_number_hash", Type: field.TypeString, Nullable: true}, {Name: "phone_number_verified", Type: field.TypeBool, Default: false}, {Name: "address_encrypted", Type: field.TypeBytes, Nullable: true}, {Name: "description", Type: field.TypeString, Nullable: true, Size: 4096}, {Name: "metadata", Type: field.TypeJSON, Nullable: true}, } // LionUsersTable holds the schema information for the "lion_users" table. LionUsersTable = &schema.Table{ Name: "lion_users", Columns: LionUsersColumns, PrimaryKey: []*schema.Column{LionUsersColumns[0]}, Indexes: []*schema.Index{ { Name: "users_email_hash", Unique: true, Columns: []*schema.Column{LionUsersColumns[17]}, Annotation: &entsql.IndexAnnotation{ Where: "email_hash != '' AND email_hash IS NOT NULL", }, }, { Name: "users_phone_number_hash", Unique: true, Columns: []*schema.Column{LionUsersColumns[24]}, Annotation: &entsql.IndexAnnotation{ Where: "phone_number_hash != '' AND phone_number_hash IS NOT NULL", }, }, { Name: "users_national_id_hash", Unique: true, Columns: []*schema.Column{LionUsersColumns[11]}, Annotation: &entsql.IndexAnnotation{ Where: "national_id_hash != '' AND national_id_hash IS NOT NULL", }, }, { Name: "users_deleted_at_user_status_created_at", Unique: false, Columns: []*schema.Column{LionUsersColumns[3], LionUsersColumns[9], LionUsersColumns[1]}, }, { Name: "users_deleted_at_user_type_user_status_created_at", Unique: false, Columns: []*schema.Column{LionUsersColumns[3], LionUsersColumns[8], LionUsersColumns[9], LionUsersColumns[1]}, }, { Name: "users_deleted_at_created_at", Unique: false, Columns: []*schema.Column{LionUsersColumns[3], LionUsersColumns[1]}, }, { Name: "users_user_type_user_status", Unique: false, Columns: []*schema.Column{LionUsersColumns[8], LionUsersColumns[9]}, }, { Name: "users_user_type_created_at", Unique: false, Columns: []*schema.Column{LionUsersColumns[8], LionUsersColumns[1]}, }, { Name: "users_user_type", Unique: false, Columns: []*schema.Column{LionUsersColumns[8]}, }, { Name: "users_user_status", Unique: false, Columns: []*schema.Column{LionUsersColumns[9]}, }, { Name: "users_email_hash_email_verified", Unique: false, Columns: []*schema.Column{LionUsersColumns[17], LionUsersColumns[18]}, Annotation: &entsql.IndexAnnotation{ Where: "email_hash != '' AND email_hash IS NOT NULL", }, }, { Name: "users_phone_number_hash_phone_number_verified", Unique: false, Columns: []*schema.Column{LionUsersColumns[24], LionUsersColumns[25]}, Annotation: &entsql.IndexAnnotation{ Where: "phone_number_hash != '' AND phone_number_hash IS NOT NULL", }, }, { Name: "users_created_at", Unique: false, Columns: []*schema.Column{LionUsersColumns[1]}, }, { Name: "users_created_by_created_at", Unique: false, Columns: []*schema.Column{LionUsersColumns[4], LionUsersColumns[1]}, }, { Name: "users_updated_by_updated_at", Unique: false, Columns: []*schema.Column{LionUsersColumns[5], LionUsersColumns[2]}, }, }, } // Tables holds all the tables in the schema. Tables = []*schema.Table{ LionAuthProvidersTable, LionCredentialsTable, LionDepartmentsTable, LionSettingsTable, LionGroupsTable, LionMenusTable, LionOauth2ClientsTable, LionOauth2CodesTable, LionPoliciesTable, LionPrincipalRolesTable, LionRoleMenusTable, LionRolePoliciesTable, LionRolesTable, LionUserIdentitiesTable, LionUserMembershipsTable, LionUserProfilesTable, LionUsersTable, } )
Functions ¶
Types ¶
type Schema ¶
type Schema struct {
// contains filtered or unexported fields
}
Schema is the API for creating, migrating and dropping a schema.
Click to show internal directories.
Click to hide internal directories.