feat: directus scheme

This commit is contained in:
2025-10-28 21:10:26 +01:00
parent 5c0b97e180
commit 7949366477

View File

@@ -102,6 +102,34 @@ collections:
versioning: false versioning: false
schema: schema:
name: sexy_videos_directus_users name: sexy_videos_directus_users
- collection: sexy_recordings
meta:
accountability: all
archive_app_filter: true
archive_field: status
archive_value: archived
collapse: open
collection: sexy_recordings
color: null
display_template: null
group: null
hidden: false
icon: fiber_manual_record
item_duplication_fields: null
note: null
preview_url: null
singleton: false
sort: null
sort_field: null
translations:
- language: en-US
plural: Recordings
singular: Recording
translation: Sexy Recordings
unarchive_value: draft
versioning: false
schema:
name: sexy_recordings
fields: fields:
- collection: directus_users - collection: directus_users
field: website field: website
@@ -178,7 +206,7 @@ fields:
max_length: 255 max_length: 255
numeric_precision: null numeric_precision: null
numeric_scale: null numeric_scale: null
is_nullable: false is_nullable: true
is_unique: true is_unique: true
is_indexed: true is_indexed: true
is_primary_key: false is_primary_key: false
@@ -1880,6 +1908,639 @@ fields:
has_auto_increment: false has_auto_increment: false
foreign_key_table: directus_users foreign_key_table: directus_users
foreign_key_column: id foreign_key_column: id
- collection: sexy_recordings
field: id
type: uuid
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: id
group: null
hidden: true
interface: input
note: null
options: null
readonly: true
required: false
sort: 1
special:
- uuid
translations: null
validation: null
validation_message: null
width: full
schema:
name: id
table: sexy_recordings
data_type: uuid
default_value: null
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: false
is_unique: true
is_indexed: false
is_primary_key: true
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: status
type: string
meta:
collection: sexy_recordings
conditions: null
display: labels
display_options:
choices:
- background: var(--theme--primary-background)
color: var(--theme--primary)
foreground: var(--theme--primary)
text: $t:published
value: published
- background: var(--theme--background-normal)
color: var(--theme--foreground)
foreground: var(--theme--foreground)
text: $t:draft
value: draft
- background: var(--theme--warning-background)
color: var(--theme--warning)
foreground: var(--theme--warning)
text: $t:archived
value: archived
showAsDot: true
field: status
group: null
hidden: false
interface: select-dropdown
note: null
options:
choices:
- color: var(--theme--primary)
text: $t:published
value: published
- color: var(--theme--foreground)
text: $t:draft
value: draft
- color: var(--theme--warning)
text: $t:archived
value: archived
readonly: false
required: false
sort: 2
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: status
table: sexy_recordings
data_type: character varying
default_value: draft
max_length: 255
numeric_precision: null
numeric_scale: null
is_nullable: false
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: user_created
type: uuid
meta:
collection: sexy_recordings
conditions: null
display: user
display_options: null
field: user_created
group: null
hidden: true
interface: select-dropdown-m2o
note: null
options:
template: '{{avatar}} {{first_name}} {{last_name}}'
readonly: true
required: false
sort: 3
special:
- user-created
translations: null
validation: null
validation_message: null
width: half
schema:
name: user_created
table: sexy_recordings
data_type: uuid
default_value: null
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: true
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: directus_users
foreign_key_column: id
- collection: sexy_recordings
field: date_created
type: timestamp
meta:
collection: sexy_recordings
conditions: null
display: datetime
display_options:
relative: true
field: date_created
group: null
hidden: true
interface: datetime
note: null
options: null
readonly: true
required: false
sort: 4
special:
- date-created
translations: null
validation: null
validation_message: null
width: half
schema:
name: date_created
table: sexy_recordings
data_type: timestamp with time zone
default_value: null
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: true
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: date_updated
type: timestamp
meta:
collection: sexy_recordings
conditions: null
display: datetime
display_options:
relative: true
field: date_updated
group: null
hidden: true
interface: datetime
note: null
options: null
readonly: true
required: false
sort: 5
special:
- date-updated
translations: null
validation: null
validation_message: null
width: half
schema:
name: date_updated
table: sexy_recordings
data_type: timestamp with time zone
default_value: null
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: true
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: title
type: string
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: title
group: null
hidden: false
interface: input
note: null
options: null
readonly: false
required: true
sort: 6
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: title
table: sexy_recordings
data_type: character varying
default_value: null
max_length: 255
numeric_precision: null
numeric_scale: null
is_nullable: true
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: description
type: text
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: description
group: null
hidden: false
interface: input-multiline
note: null
options:
trim: true
readonly: false
required: false
sort: 7
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: description
table: sexy_recordings
data_type: text
default_value: null
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: true
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: slug
type: string
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: slug
group: null
hidden: false
interface: input
note: null
options:
slug: true
trim: true
readonly: false
required: true
sort: 8
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: slug
table: sexy_recordings
data_type: character varying
default_value: null
max_length: 255
numeric_precision: null
numeric_scale: null
is_nullable: false
is_unique: true
is_indexed: true
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: duration
type: float
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: duration
group: null
hidden: false
interface: input
note: Duration in milliseconds
options: null
readonly: false
required: true
sort: 9
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: duration
table: sexy_recordings
data_type: double precision
default_value: null
max_length: null
numeric_precision: 53
numeric_scale: null
is_nullable: false
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: events
type: json
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: events
group: null
hidden: false
interface: input-code
note: Array of recorded events with timestamps
options:
language: json
readonly: false
required: true
sort: 10
special:
- cast-json
translations: null
validation: null
validation_message: null
width: full
schema:
name: events
table: sexy_recordings
data_type: json
default_value: null
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: false
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: device_info
type: json
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: device_info
group: null
hidden: false
interface: input-code
note: Array of device metadata
options:
language: json
readonly: false
required: true
sort: 11
special:
- cast-json
translations: null
validation: null
validation_message: null
width: full
schema:
name: device_info
table: sexy_recordings
data_type: json
default_value: null
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: false
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: tags
type: json
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: tags
group: null
hidden: false
interface: tags
note: null
options: null
readonly: false
required: false
sort: 12
special:
- cast-json
translations: null
validation: null
validation_message: null
width: full
schema:
name: tags
table: sexy_recordings
data_type: json
default_value: null
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: true
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: linked_video
type: uuid
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: linked_video
group: null
hidden: false
interface: select-dropdown-m2o
note: null
options:
enableLink: true
readonly: false
required: false
sort: 13
special:
- m2o
translations: null
validation: null
validation_message: null
width: full
schema:
name: linked_video
table: sexy_recordings
data_type: uuid
default_value: null
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: true
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: sexy_videos
foreign_key_column: id
- collection: sexy_recordings
field: featured
type: boolean
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: featured
group: null
hidden: false
interface: boolean
note: null
options:
label: Featured
readonly: false
required: false
sort: 14
special:
- cast-boolean
translations: null
validation: null
validation_message: null
width: full
schema:
name: featured
table: sexy_recordings
data_type: boolean
default_value: false
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: true
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
- collection: sexy_recordings
field: public
type: boolean
meta:
collection: sexy_recordings
conditions: null
display: null
display_options: null
field: public
group: null
hidden: false
interface: boolean
note: null
options:
label: Public
readonly: false
required: false
sort: 15
special:
- cast-boolean
translations: null
validation: null
validation_message: null
width: full
schema:
name: public
table: sexy_recordings
data_type: boolean
default_value: false
max_length: null
numeric_precision: null
numeric_scale: null
is_nullable: true
is_unique: false
is_indexed: false
is_primary_key: false
is_generated: false
generation_expression: null
has_auto_increment: false
foreign_key_table: null
foreign_key_column: null
relations: relations:
- collection: directus_users - collection: directus_users
field: banner field: banner
@@ -2112,3 +2773,45 @@ relations:
constraint_name: sexy_videos_directus_users_sexy_videos_id_foreign constraint_name: sexy_videos_directus_users_sexy_videos_id_foreign
on_update: NO ACTION on_update: NO ACTION
on_delete: SET NULL on_delete: SET NULL
- collection: sexy_recordings
field: user_created
related_collection: directus_users
meta:
junction_field: null
many_collection: sexy_recordings
many_field: user_created
one_allowed_collections: null
one_collection: directus_users
one_collection_field: null
one_deselect_action: nullify
one_field: null
sort_field: null
schema:
table: sexy_recordings
column: user_created
foreign_key_table: directus_users
foreign_key_column: id
constraint_name: sexy_recordings_user_created_foreign
on_update: NO ACTION
on_delete: NO ACTION
- collection: sexy_recordings
field: linked_video
related_collection: sexy_videos
meta:
junction_field: null
many_collection: sexy_recordings
many_field: linked_video
one_allowed_collections: null
one_collection: sexy_videos
one_collection_field: null
one_deselect_action: nullify
one_field: null
sort_field: null
schema:
table: sexy_recordings
column: linked_video
foreign_key_table: sexy_videos
foreign_key_column: id
constraint_name: sexy_recordings_linked_video_foreign
on_update: NO ACTION
on_delete: SET NULL