diff --git a/entities/BoUser b/entities/BoUser new file mode 100644 index 0000000..487fab5 --- /dev/null +++ b/entities/BoUser @@ -0,0 +1,93 @@ +{ + "name": "BoUser", + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "User email address" + }, + "username": { + "type": "string", + "description": "Chosen username for login" + }, + "password_hash": { + "type": "string", + "description": "Hashed password (demo only)" + }, + "store_id": { + "type": "string", + "description": "Associated store ID" + }, + "store_name": { + "type": "string", + "description": "Associated store name" + }, + "store_address": { + "type": "string", + "description": "Store address" + }, + "onboarding_token": { + "type": "string", + "description": "Original onboarding token" + }, + "first_login_completed": { + "type": "boolean", + "default": false, + "description": "Whether the guided tour has been completed" + }, + "stripe_onboarding_started": { + "type": "boolean", + "default": false, + "description": "Whether Stripe onboarding has been started" + }, + "full_name": { + "type": "string", + "description": "User full name" + }, + "phone": { + "type": "string" + }, + "city": { + "type": "string" + }, + "state": { + "type": "string" + }, + "zip_code": { + "type": "string" + }, + "street_address": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "active", + "inactive", + "pending" + ], + "default": "active" + }, + "activation_code": { + "type": "string", + "description": "Unique email verification code" + }, + "activation_email_sent": { + "type": "boolean", + "default": false, + "description": "Whether the activation email has been sent" + }, + "is_activated": { + "type": "boolean", + "default": false, + "description": "Whether the account email has been verified" + }, + "activation_completed_at": { + "type": "string", + "description": "Timestamp when activation was completed" + } + }, + "required": [ + "email" + ] +} \ No newline at end of file