Files
sexy.pivoine.art/directus.yaml

2818 lines
68 KiB
YAML
Raw Normal View History

feat: add buttplug device recording feature (Phase 1 & 2) Implemented complete infrastructure for recording, saving, and managing buttplug device patterns with precise event timing. **Phase 1: Backend & Infrastructure** - Added Directus schema for sexy_recordings collection with all fields (id, status, user_created, title, description, slug, duration, events, device_info, tags, linked_video, featured, public) - Created REST API endpoints in bundle extension: * GET /sexy/recordings - list user recordings with filtering * GET /sexy/recordings/:id - get single recording * POST /sexy/recordings - create new recording with validation * PATCH /sexy/recordings/:id - update recording (owner only) * DELETE /sexy/recordings/:id - soft delete by archiving - Added TypeScript types: RecordedEvent, DeviceInfo, Recording - Created frontend services: getRecordings(), deleteRecording() - Built RecordingCard component with stats, device info, and actions - Added Recordings tab to /me dashboard page with grid layout - Added i18n translations for recordings UI **Phase 2: Recording Capture** - Implemented recording state management in /play page - Added Start/Stop Recording buttons with visual indicators - Capture device events with precise timestamps during recording - Normalize actuator values (0-100) for cross-device compatibility - Created RecordingSaveDialog component with: * Recording stats display (duration, events, devices) * Form inputs (title, description, tags) * Device information preview - Integrated save recording API call from play page - Added success/error toast notifications - Automatic event filtering during recording **Technical Details** - Events stored as JSON array with timestamp, deviceIndex, deviceName, actuatorIndex, actuatorType, and normalized value - Device metadata includes name, index, and capability list - Slug auto-generated from title for SEO-friendly URLs - Status workflow: draft → published → archived - Permission checks: users can only access own recordings or public ones - Frontend uses performance.now() for millisecond precision timing **User Flow** 1. User scans and connects devices on /play page 2. Clicks "Start Recording" to begin capturing events 3. Manipulates device sliders - all changes are recorded 4. Clicks "Stop Recording" to end capture 5. Save dialog appears with recording preview and form 6. User enters title, description, tags and saves 7. Recording appears in dashboard /me Recordings tab 8. Can play back, edit, or delete recordings 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 04:05:09 +01:00
version: 1
directus: 11.12.0
vendor: postgres
collections:
- collection: junction_directus_users_files
meta:
accountability: all
archive_app_filter: true
archive_field: null
archive_value: null
collapse: open
collection: junction_directus_users_files
color: null
display_template: null
group: null
hidden: true
icon: import_export
item_duplication_fields: null
note: null
preview_url: null
singleton: false
sort: null
sort_field: null
translations: null
unarchive_value: null
versioning: false
schema:
name: junction_directus_users_files
- collection: sexy_articles
meta:
accountability: all
archive_app_filter: true
archive_field: status
archive_value: archived
collapse: open
collection: sexy_articles
color: null
display_template: null
group: null
hidden: false
icon: newsmode
item_duplication_fields: null
note: null
preview_url: null
singleton: false
sort: null
sort_field: null
translations:
- language: en-US
plural: Articles
singular: Article
translation: Sexy Articles
unarchive_value: draft
versioning: true
schema:
name: sexy_articles
- collection: sexy_videos
meta:
accountability: all
archive_app_filter: true
archive_field: status
archive_value: archived
collapse: open
collection: sexy_videos
color: null
display_template: null
group: null
hidden: false
icon: videocam
item_duplication_fields: null
note: null
preview_url: null
singleton: false
sort: null
sort_field: null
translations: null
unarchive_value: draft
versioning: false
schema:
name: sexy_videos
- collection: sexy_videos_directus_users
meta:
accountability: all
archive_app_filter: true
archive_field: null
archive_value: null
collapse: open
collection: sexy_videos_directus_users
color: null
display_template: null
group: null
hidden: true
icon: import_export
item_duplication_fields: null
note: null
preview_url: null
singleton: false
sort: null
sort_field: null
translations: null
unarchive_value: null
versioning: false
schema:
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:
- collection: directus_users
field: website
type: string
meta:
collection: directus_users
conditions: null
display: null
display_options: null
field: website
group: null
hidden: false
interface: input
note: null
options: null
readonly: false
required: false
sort: 2
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: website
table: directus_users
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: directus_users
field: slug
type: string
meta:
collection: directus_users
conditions:
- name: Enable for role "Administrator"
readonly: false
rule:
_and:
- role:
_eq: ea3a9127-2b65-462c-85a8-dbafe9b4fe24
display: null
display_options: null
field: slug
group: null
hidden: false
interface: input
note: null
options: null
readonly: false
required: true
sort: 3
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: slug
table: directus_users
data_type: character varying
default_value: null
max_length: 255
numeric_precision: null
numeric_scale: null
is_nullable: true
feat: add buttplug device recording feature (Phase 1 & 2) Implemented complete infrastructure for recording, saving, and managing buttplug device patterns with precise event timing. **Phase 1: Backend & Infrastructure** - Added Directus schema for sexy_recordings collection with all fields (id, status, user_created, title, description, slug, duration, events, device_info, tags, linked_video, featured, public) - Created REST API endpoints in bundle extension: * GET /sexy/recordings - list user recordings with filtering * GET /sexy/recordings/:id - get single recording * POST /sexy/recordings - create new recording with validation * PATCH /sexy/recordings/:id - update recording (owner only) * DELETE /sexy/recordings/:id - soft delete by archiving - Added TypeScript types: RecordedEvent, DeviceInfo, Recording - Created frontend services: getRecordings(), deleteRecording() - Built RecordingCard component with stats, device info, and actions - Added Recordings tab to /me dashboard page with grid layout - Added i18n translations for recordings UI **Phase 2: Recording Capture** - Implemented recording state management in /play page - Added Start/Stop Recording buttons with visual indicators - Capture device events with precise timestamps during recording - Normalize actuator values (0-100) for cross-device compatibility - Created RecordingSaveDialog component with: * Recording stats display (duration, events, devices) * Form inputs (title, description, tags) * Device information preview - Integrated save recording API call from play page - Added success/error toast notifications - Automatic event filtering during recording **Technical Details** - Events stored as JSON array with timestamp, deviceIndex, deviceName, actuatorIndex, actuatorType, and normalized value - Device metadata includes name, index, and capability list - Slug auto-generated from title for SEO-friendly URLs - Status workflow: draft → published → archived - Permission checks: users can only access own recordings or public ones - Frontend uses performance.now() for millisecond precision timing **User Flow** 1. User scans and connects devices on /play page 2. Clicks "Start Recording" to begin capturing events 3. Manipulates device sliders - all changes are recorded 4. Clicks "Stop Recording" to end capture 5. Save dialog appears with recording preview and form 6. User enters title, description, tags and saves 7. Recording appears in dashboard /me Recordings tab 8. Can play back, edit, or delete recordings 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 04:05:09 +01:00
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: directus_users
field: join_date
type: dateTime
meta:
collection: directus_users
conditions: null
display: null
display_options: null
field: join_date
group: null
hidden: false
interface: datetime
note: null
options:
format: short
readonly: false
required: true
sort: 4
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: join_date
table: directus_users
data_type: timestamp without time zone
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: directus_users
field: featured
type: boolean
meta:
collection: directus_users
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: 5
special:
- cast-boolean
translations: null
validation: null
validation_message: null
width: full
schema:
name: featured
table: directus_users
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: directus_users
field: artist_name
type: string
meta:
collection: directus_users
conditions: null
display: null
display_options: null
field: artist_name
group: null
hidden: false
interface: input
note: null
options: null
readonly: false
required: true
sort: 1
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: artist_name
table: directus_users
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: directus_users
field: photos
type: alias
meta:
collection: directus_users
conditions: null
display: null
display_options: null
field: photos
group: null
hidden: false
interface: files
note: null
options:
filter:
_and:
- type:
_starts_with: image
folder: 4cb93083-f3f7-4a61-a80f-d56fd9e6ee62
readonly: false
required: false
sort: 6
special:
- files
translations: null
validation: null
validation_message: null
width: full
- collection: directus_users
field: banner
type: uuid
meta:
collection: directus_users
conditions: null
display: null
display_options: null
field: banner
group: null
hidden: false
interface: file-image
note: null
options:
folder: 9fd092ff-9e7b-48f0-b26c-bcead509ba9e
readonly: false
required: false
sort: 7
special:
- file
translations: null
validation: null
validation_message: null
width: full
schema:
name: banner
table: directus_users
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_files
foreign_key_column: id
- collection: junction_directus_users_files
field: id
type: integer
meta:
collection: junction_directus_users_files
conditions: null
display: null
display_options: null
field: id
group: null
hidden: true
interface: null
note: null
options: null
readonly: false
required: false
sort: 1
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: id
table: junction_directus_users_files
data_type: integer
default_value: nextval('junction_directus_users_files_id_seq'::regclass)
max_length: null
numeric_precision: 32
numeric_scale: 0
is_nullable: false
is_unique: true
is_indexed: false
is_primary_key: true
is_generated: false
generation_expression: null
has_auto_increment: true
foreign_key_table: null
foreign_key_column: null
- collection: junction_directus_users_files
field: directus_users_id
type: uuid
meta:
collection: junction_directus_users_files
conditions: null
display: null
display_options: null
field: directus_users_id
group: null
hidden: true
interface: null
note: null
options: null
readonly: false
required: false
sort: 2
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: directus_users_id
table: junction_directus_users_files
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: junction_directus_users_files
field: directus_files_id
type: uuid
meta:
collection: junction_directus_users_files
conditions: null
display: null
display_options: null
field: directus_files_id
group: null
hidden: true
interface: null
note: null
options: null
readonly: false
required: false
sort: 3
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: directus_files_id
table: junction_directus_users_files
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_files
foreign_key_column: id
- collection: sexy_articles
field: id
type: uuid
meta:
collection: sexy_articles
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_articles
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_articles
field: status
type: string
meta:
collection: sexy_articles
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_articles
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_articles
field: user_created
type: uuid
meta:
collection: sexy_articles
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_articles
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_articles
field: date_created
type: timestamp
meta:
collection: sexy_articles
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_articles
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_articles
field: date_updated
type: timestamp
meta:
collection: sexy_articles
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_articles
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_articles
field: slug
type: string
meta:
collection: sexy_articles
conditions: null
display: null
display_options: null
field: slug
group: null
hidden: false
interface: input
note: null
options:
slug: true
readonly: false
required: true
sort: 6
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: slug
table: sexy_articles
data_type: character varying
default_value: null
max_length: 255
numeric_precision: null
numeric_scale: null
is_nullable: true
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_articles
field: title
type: string
meta:
collection: sexy_articles
conditions: null
display: null
display_options: null
field: title
group: null
hidden: false
interface: input
note: null
options: null
readonly: false
required: true
sort: 7
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: title
table: sexy_articles
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_articles
field: excerpt
type: text
meta:
collection: sexy_articles
conditions: null
display: null
display_options: null
field: excerpt
group: null
hidden: false
interface: input-multiline
note: null
options:
trim: true
readonly: false
required: true
sort: 9
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: excerpt
table: sexy_articles
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_articles
field: content
type: text
meta:
collection: sexy_articles
conditions: null
display: null
display_options: null
field: content
group: null
hidden: false
interface: input-rich-text-html
note: null
options:
folder: c214c905-885b-4d66-a6a1-6527b0606200
toolbar:
- bold
- italic
- underline
- h2
- h3
- numlist
- bullist
- removeformat
- blockquote
- customLink
- hr
- fullscreen
- code
readonly: false
required: true
sort: 10
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: content
table: sexy_articles
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_articles
field: image
type: uuid
meta:
collection: sexy_articles
conditions: null
display: null
display_options: null
field: image
group: null
hidden: false
interface: file-image
note: null
options:
folder: 452680cc-8e19-4352-a943-21520d3f3621
readonly: false
required: true
sort: 11
special:
- file
translations: null
validation: null
validation_message: null
width: full
schema:
name: image
table: sexy_articles
data_type: uuid
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: directus_files
foreign_key_column: id
- collection: sexy_articles
field: tags
type: json
meta:
collection: sexy_articles
conditions: null
display: null
display_options: null
field: tags
group: null
hidden: false
interface: tags
note: null
options:
capitalization: auto-format
whitespace: _
readonly: false
required: false
sort: 12
special:
- cast-json
translations: null
validation: null
validation_message: null
width: full
schema:
name: tags
table: sexy_articles
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_articles
field: publish_date
type: dateTime
meta:
collection: sexy_articles
conditions: null
display: null
display_options: null
field: publish_date
group: null
hidden: false
interface: datetime
note: null
options: null
readonly: false
required: true
sort: 13
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: publish_date
table: sexy_articles
data_type: timestamp without 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_articles
field: category
type: string
meta:
collection: sexy_articles
conditions: null
display: null
display_options: null
field: category
group: null
hidden: false
interface: input
note: null
options: null
readonly: false
required: true
sort: 14
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: category
table: sexy_articles
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_articles
field: featured
type: boolean
meta:
collection: sexy_articles
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: 15
special:
- cast-boolean
translations: null
validation: null
validation_message: null
width: full
schema:
name: featured
table: sexy_articles
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_articles
field: author
type: uuid
meta:
collection: sexy_articles
conditions: null
display: null
display_options: null
field: author
group: null
hidden: false
interface: select-dropdown-m2o
note: null
options:
enableLink: true
filter:
_and:
- policies:
policy:
name:
_eq: Editor
readonly: false
required: true
sort: 8
special:
- m2o
translations: null
validation: null
validation_message: null
width: full
schema:
name: author
table: sexy_articles
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_videos
field: id
type: uuid
meta:
collection: sexy_videos
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_videos
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_videos
field: status
type: string
meta:
collection: sexy_videos
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_videos
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_videos
field: user_created
type: uuid
meta:
collection: sexy_videos
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_videos
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_videos
field: date_created
type: timestamp
meta:
collection: sexy_videos
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_videos
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_videos
field: date_updated
type: timestamp
meta:
collection: sexy_videos
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_videos
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_videos
field: slug
type: string
meta:
collection: sexy_videos
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: 6
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: slug
table: sexy_videos
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_videos
field: title
type: string
meta:
collection: sexy_videos
conditions: null
display: null
display_options: null
field: title
group: null
hidden: false
interface: input
note: null
options: null
readonly: false
required: true
sort: 7
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: title
table: sexy_videos
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_videos
field: image
type: uuid
meta:
collection: sexy_videos
conditions: null
display: null
display_options: null
field: image
group: null
hidden: false
interface: file-image
note: null
options:
folder: 26657630-d9cd-47a3-9e45-9831f3674f97
readonly: false
required: true
sort: 9
special:
- file
translations: null
validation: null
validation_message: null
width: full
schema:
name: image
table: sexy_videos
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_files
foreign_key_column: id
- collection: sexy_videos
field: upload_date
type: dateTime
meta:
collection: sexy_videos
conditions: null
display: null
display_options: null
field: upload_date
group: null
hidden: false
interface: datetime
note: null
options: null
readonly: false
required: true
sort: 12
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: upload_date
table: sexy_videos
data_type: timestamp without 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_videos
field: premium
type: boolean
meta:
collection: sexy_videos
conditions: null
display: null
display_options: null
field: premium
group: null
hidden: false
interface: boolean
note: null
options:
label: Premium
readonly: false
required: false
sort: 13
special:
- cast-boolean
translations: null
validation: null
validation_message: null
width: full
schema:
name: premium
table: sexy_videos
data_type: boolean
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_videos
field: featured
type: boolean
meta:
collection: sexy_videos
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_videos
data_type: boolean
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_videos
field: tags
type: json
meta:
collection: sexy_videos
conditions: null
display: null
display_options: null
field: tags
group: null
hidden: false
interface: tags
note: null
options: null
readonly: false
required: false
sort: 15
special:
- cast-json
translations: null
validation: null
validation_message: null
width: full
schema:
name: tags
table: sexy_videos
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_videos
field: models
type: alias
meta:
collection: sexy_videos
conditions: null
display: null
display_options: null
field: models
group: null
hidden: false
interface: list-m2m
note: null
options: null
readonly: false
required: true
sort: 11
special:
- m2m
translations: null
validation: null
validation_message: null
width: full
- collection: sexy_videos
field: movie
type: uuid
meta:
collection: sexy_videos
conditions: null
display: null
display_options: null
field: movie
group: null
hidden: false
interface: file
note: null
options:
filter:
_and:
- type:
_eq: video/mp4
folder: 3f83c727-9c90-4e0d-871f-ab81c295043a
readonly: false
required: true
sort: 10
special:
- file
translations: null
validation: null
validation_message: null
width: full
schema:
name: movie
table: sexy_videos
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_files
foreign_key_column: id
- collection: sexy_videos
field: description
type: text
meta:
collection: sexy_videos
conditions: null
display: null
display_options: null
field: description
group: null
hidden: false
interface: input-multiline
note: null
options:
trim: true
readonly: false
required: true
sort: 8
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: description
table: sexy_videos
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_videos_directus_users
field: id
type: integer
meta:
collection: sexy_videos_directus_users
conditions: null
display: null
display_options: null
field: id
group: null
hidden: true
interface: null
note: null
options: null
readonly: false
required: false
sort: 1
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: id
table: sexy_videos_directus_users
data_type: integer
default_value: nextval('sexy_videos_directus_users_id_seq'::regclass)
max_length: null
numeric_precision: 32
numeric_scale: 0
is_nullable: false
is_unique: true
is_indexed: false
is_primary_key: true
is_generated: false
generation_expression: null
has_auto_increment: true
foreign_key_table: null
foreign_key_column: null
- collection: sexy_videos_directus_users
field: sexy_videos_id
type: uuid
meta:
collection: sexy_videos_directus_users
conditions: null
display: null
display_options: null
field: sexy_videos_id
group: null
hidden: true
interface: null
note: null
options: null
readonly: false
required: false
sort: 2
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: sexy_videos_id
table: sexy_videos_directus_users
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_videos_directus_users
field: directus_users_id
type: uuid
meta:
collection: sexy_videos_directus_users
conditions: null
display: null
display_options: null
field: directus_users_id
group: null
hidden: true
interface: null
note: null
options: null
readonly: false
required: false
sort: 3
special: null
translations: null
validation: null
validation_message: null
width: full
schema:
name: directus_users_id
table: sexy_videos_directus_users
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: 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: integer
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: integer
default_value: null
max_length: null
numeric_precision: 32
numeric_scale: 0
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:
- collection: directus_users
field: banner
related_collection: directus_files
meta:
junction_field: null
many_collection: directus_users
many_field: banner
one_allowed_collections: null
one_collection: directus_files
one_collection_field: null
one_deselect_action: nullify
one_field: null
sort_field: null
schema:
table: directus_users
column: banner
foreign_key_table: directus_files
foreign_key_column: id
constraint_name: directus_users_banner_foreign
on_update: NO ACTION
on_delete: SET NULL
- collection: junction_directus_users_files
field: directus_files_id
related_collection: directus_files
meta:
junction_field: directus_users_id
many_collection: junction_directus_users_files
many_field: directus_files_id
one_allowed_collections: null
one_collection: directus_files
one_collection_field: null
one_deselect_action: nullify
one_field: null
sort_field: null
schema:
table: junction_directus_users_files
column: directus_files_id
foreign_key_table: directus_files
foreign_key_column: id
constraint_name: junction_directus_users_files_directus_files_id_foreign
on_update: NO ACTION
on_delete: SET NULL
- collection: junction_directus_users_files
field: directus_users_id
related_collection: directus_users
meta:
junction_field: directus_files_id
many_collection: junction_directus_users_files
many_field: directus_users_id
one_allowed_collections: null
one_collection: directus_users
one_collection_field: null
one_deselect_action: nullify
one_field: photos
sort_field: null
schema:
table: junction_directus_users_files
column: directus_users_id
foreign_key_table: directus_users
foreign_key_column: id
constraint_name: junction_directus_users_files_directus_users_id_foreign
on_update: NO ACTION
on_delete: SET NULL
- collection: sexy_articles
field: user_created
related_collection: directus_users
meta:
junction_field: null
many_collection: sexy_articles
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_articles
column: user_created
foreign_key_table: directus_users
foreign_key_column: id
constraint_name: sexy_articles_user_created_foreign
on_update: NO ACTION
on_delete: NO ACTION
- collection: sexy_articles
field: image
related_collection: directus_files
meta:
junction_field: null
many_collection: sexy_articles
many_field: image
one_allowed_collections: null
one_collection: directus_files
one_collection_field: null
one_deselect_action: nullify
one_field: null
sort_field: null
schema:
table: sexy_articles
column: image
foreign_key_table: directus_files
foreign_key_column: id
constraint_name: sexy_articles_image_foreign
on_update: NO ACTION
on_delete: NO ACTION
- collection: sexy_articles
field: author
related_collection: directus_users
meta:
junction_field: null
many_collection: sexy_articles
many_field: author
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_articles
column: author
foreign_key_table: directus_users
foreign_key_column: id
constraint_name: sexy_articles_author_foreign
on_update: NO ACTION
on_delete: SET NULL
- collection: sexy_videos
field: user_created
related_collection: directus_users
meta:
junction_field: null
many_collection: sexy_videos
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_videos
column: user_created
foreign_key_table: directus_users
foreign_key_column: id
constraint_name: sexy_videos_user_created_foreign
on_update: NO ACTION
on_delete: NO ACTION
- collection: sexy_videos
field: image
related_collection: directus_files
meta:
junction_field: null
many_collection: sexy_videos
many_field: image
one_allowed_collections: null
one_collection: directus_files
one_collection_field: null
one_deselect_action: nullify
one_field: null
sort_field: null
schema:
table: sexy_videos
column: image
foreign_key_table: directus_files
foreign_key_column: id
constraint_name: sexy_videos_image_foreign
on_update: NO ACTION
on_delete: SET NULL
- collection: sexy_videos
field: movie
related_collection: directus_files
meta:
junction_field: null
many_collection: sexy_videos
many_field: movie
one_allowed_collections: null
one_collection: directus_files
one_collection_field: null
one_deselect_action: nullify
one_field: null
sort_field: null
schema:
table: sexy_videos
column: movie
foreign_key_table: directus_files
foreign_key_column: id
constraint_name: sexy_videos_movie_foreign
on_update: NO ACTION
on_delete: SET NULL
- collection: sexy_videos_directus_users
field: directus_users_id
related_collection: directus_users
meta:
junction_field: sexy_videos_id
many_collection: sexy_videos_directus_users
many_field: directus_users_id
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_videos_directus_users
column: directus_users_id
foreign_key_table: directus_users
foreign_key_column: id
constraint_name: sexy_videos_directus_users_directus_users_id_foreign
on_update: NO ACTION
on_delete: SET NULL
- collection: sexy_videos_directus_users
field: sexy_videos_id
related_collection: sexy_videos
meta:
junction_field: directus_users_id
many_collection: sexy_videos_directus_users
many_field: sexy_videos_id
one_allowed_collections: null
one_collection: sexy_videos
one_collection_field: null
one_deselect_action: nullify
one_field: models
sort_field: null
schema:
table: sexy_videos_directus_users
column: sexy_videos_id
foreign_key_table: sexy_videos
foreign_key_column: id
constraint_name: sexy_videos_directus_users_sexy_videos_id_foreign
on_update: NO ACTION
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