@@ -29,6 +29,31 @@ export default defineType({
2929 title : 'Social Handle or Portfolio URL' ,
3030 type : 'url' ,
3131 } ) ,
32+ defineField ( {
33+ name : 'bookingSource' ,
34+ title : 'Booking Source' ,
35+ type : 'string' ,
36+ options : {
37+ list : [
38+ { title : 'Direct Book (codingcat.dev/book)' , value : 'direct' } ,
39+ { title : 'Passionfroot Creator API' , value : 'passionfroot' } ,
40+ ] ,
41+ } ,
42+ initialValue : 'direct' ,
43+ } ) ,
44+ defineField ( {
45+ name : 'sessionType' ,
46+ title : 'Session Type' ,
47+ type : 'string' ,
48+ options : {
49+ list : [
50+ { title : '45m Recording Session' , value : 'recording-45m' } ,
51+ { title : '15m Pre-Meeting Only (Google Meet)' , value : 'pre-meeting-15m' } ,
52+ { title : '45m Recording + 15m Google Meet Pre-Meeting' , value : 'recording-with-pre-meeting' } ,
53+ ] ,
54+ } ,
55+ initialValue : 'recording-45m' ,
56+ } ) ,
3257 defineField ( {
3358 name : 'track' ,
3459 title : 'Booking Track' ,
@@ -38,6 +63,7 @@ export default defineType({
3863 { title : 'Editorial Guest Application (Free / Review Queue)' , value : 'editorial' } ,
3964 { title : 'Sponsored Podcast & Multi-Channel Showcase ($2,000 Fast-Track)' , value : 'sponsored' } ,
4065 { title : 'Full-Stack Launch Bundle ($3,500 Kickoff & Demo)' , value : 'full-stack-launch' } ,
66+ { title : '15m Pre-Meeting / Sponsor Kickoff (Google Meet)' , value : 'sponsor-kickoff' } ,
4167 ] ,
4268 } ,
4369 initialValue : 'editorial' ,
@@ -49,9 +75,10 @@ export default defineType({
4975 type : 'string' ,
5076 options : {
5177 list : [
52- { title : 'Pending Review / Deposit ' , value : 'pending' } ,
53- { title : 'Approved / Deposit Paid ' , value : 'approved' } ,
78+ { title : 'Pending Review / Calendar Hold (Opaque Busy) ' , value : 'pending' } ,
79+ { title : 'Approved (StreamYard Sent) ' , value : 'approved' } ,
5480 { title : 'Scheduled on Google Calendar' , value : 'scheduled' } ,
81+ { title : 'Confirmed' , value : 'confirmed' } ,
5582 { title : 'Recorded' , value : 'recorded' } ,
5683 { title : 'Published' , value : 'published' } ,
5784 { title : 'Declined / Cancelled' , value : 'cancelled' } ,
@@ -64,6 +91,42 @@ export default defineType({
6491 title : 'Requested Recording Slot (UTC ISO)' ,
6592 type : 'datetime' ,
6693 } ) ,
94+ defineField ( {
95+ name : 'recordingUrl' ,
96+ title : 'Recording Studio URL (StreamYard)' ,
97+ type : 'url' ,
98+ initialValue : 'https://streamyard.com/c4kv26is93' ,
99+ } ) ,
100+ defineField ( {
101+ name : 'preMeetingStatus' ,
102+ title : 'Pre-Meeting Status (15m Google Meet)' ,
103+ type : 'string' ,
104+ options : {
105+ list : [
106+ { title : 'Not Needed' , value : 'not_needed' } ,
107+ { title : 'Requested by Host / Guest' , value : 'requested' } ,
108+ { title : 'Scheduled on Google Meet' , value : 'scheduled' } ,
109+ { title : 'Completed' , value : 'completed' } ,
110+ { title : 'Bypassed by Host' , value : 'bypassed' } ,
111+ ] ,
112+ } ,
113+ initialValue : 'not_needed' ,
114+ } ) ,
115+ defineField ( {
116+ name : 'preMeetingSlotStartAt' ,
117+ title : '15m Pre-Meeting Slot (UTC ISO)' ,
118+ type : 'datetime' ,
119+ } ) ,
120+ defineField ( {
121+ name : 'preMeetingGoogleEventId' ,
122+ title : 'Pre-Meeting Google Calendar Event ID' ,
123+ type : 'string' ,
124+ } ) ,
125+ defineField ( {
126+ name : 'preMeetingMeetUrl' ,
127+ title : '15m Pre-Meeting Google Meet URL' ,
128+ type : 'url' ,
129+ } ) ,
67130 defineField ( {
68131 name : 'topics' ,
69132 title : 'Proposed Topics & Key Talking Points' ,
@@ -130,6 +193,78 @@ export default defineType({
130193 type : 'reference' ,
131194 to : [ { type : 'sponsorLead' } ] ,
132195 } ) ,
196+ defineField ( {
197+ name : 'passionfrootCollaborationId' ,
198+ title : 'Passionfroot Collaboration ID' ,
199+ type : 'string' ,
200+ } ) ,
201+ defineField ( {
202+ name : 'passionfrootPlacementId' ,
203+ title : 'Passionfroot Placement ID' ,
204+ type : 'string' ,
205+ } ) ,
206+ defineField ( {
207+ name : 'passionfrootConversationId' ,
208+ title : 'Passionfroot Conversation ID' ,
209+ type : 'string' ,
210+ } ) ,
211+ defineField ( {
212+ name : 'sharedAssets' ,
213+ title : 'Sanity Media Library Vault Assets' ,
214+ type : 'array' ,
215+ of : [
216+ {
217+ type : 'object' ,
218+ fields : [
219+ defineField ( { name : 'title' , title : 'Asset Title / Filename' , type : 'string' } ) ,
220+ defineField ( {
221+ name : 'category' ,
222+ title : 'Category' ,
223+ type : 'string' ,
224+ options : {
225+ list : [
226+ { title : 'Brand Logo / SVG' , value : 'logo' } ,
227+ { title : 'Talking Points / Brief' , value : 'brief' } ,
228+ { title : 'Slide Deck / Demo Assets' , value : 'slides' } ,
229+ { title : 'Contract / Legal' , value : 'legal' } ,
230+ { title : 'Raw Audio / Video / B-Roll' , value : 'media' } ,
231+ ] ,
232+ } ,
233+ } ) ,
234+ defineField ( {
235+ name : 'visibility' ,
236+ title : 'Visibility' ,
237+ type : 'string' ,
238+ options : {
239+ list : [
240+ { title : 'Private to Deal Room (Token-Gated)' , value : 'private' } ,
241+ { title : 'Public Brand Asset' , value : 'public' } ,
242+ ] ,
243+ } ,
244+ initialValue : 'private' ,
245+ } ) ,
246+ defineField ( {
247+ name : 'uploadedBy' ,
248+ title : 'Uploaded By' ,
249+ type : 'string' ,
250+ options : {
251+ list : [
252+ { title : 'Partner / Guest' , value : 'partner' } ,
253+ { title : 'CodingCat.dev Studio' , value : 'codingcat' } ,
254+ { title : 'Passionfroot Auto-Ingest' , value : 'passionfroot' } ,
255+ ] ,
256+ } ,
257+ initialValue : 'partner' ,
258+ } ) ,
259+ defineField ( { name : 'uploadedAt' , title : 'Uploaded At' , type : 'datetime' } ) ,
260+ defineField ( { name : 'assetId' , title : 'Sanity Asset ID' , type : 'string' } ) ,
261+ defineField ( { name : 'mimeType' , title : 'MIME Type' , type : 'string' } ) ,
262+ defineField ( { name : 'fileSize' , title : 'File Size (Bytes)' , type : 'number' } ) ,
263+ defineField ( { name : 'externalUrl' , title : 'Direct / Proxied URL' , type : 'url' } ) ,
264+ ] ,
265+ } ,
266+ ] ,
267+ } ) ,
133268 ] ,
134269 preview : {
135270 select : {
0 commit comments