inital
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
"""Organization schemas for validation."""
|
||||
from marshmallow import Schema, fields, validate
|
||||
|
||||
|
||||
class OrganizationSchema(Schema):
|
||||
"""Schema for Organization model."""
|
||||
|
||||
id = fields.Str(dump_only=True)
|
||||
name = fields.Str(required=True, validate=validate.Length(min=1, max=255))
|
||||
slug = fields.Str(required=True, validate=validate.Length(min=1, max=255))
|
||||
description = fields.Str(allow_none=True)
|
||||
logo_url = fields.Url(allow_none=True, validate=validate.Length(max=512))
|
||||
is_active = fields.Bool(dump_only=True)
|
||||
created_at = fields.DateTime(dump_only=True)
|
||||
updated_at = fields.DateTime(dump_only=True)
|
||||
|
||||
|
||||
class OrganizationCreateSchema(Schema):
|
||||
"""Schema for creating an organization."""
|
||||
|
||||
name = fields.Str(required=True, validate=validate.Length(min=1, max=255))
|
||||
slug = fields.Str(required=True, validate=validate.Length(min=1, max=255))
|
||||
description = fields.Str(allow_none=True)
|
||||
logo_url = fields.Url(allow_none=True, validate=validate.Length(max=512))
|
||||
|
||||
|
||||
class OrganizationUpdateSchema(Schema):
|
||||
"""Schema for updating an organization."""
|
||||
|
||||
name = fields.Str(validate=validate.Length(min=1, max=255))
|
||||
description = fields.Str(allow_none=True)
|
||||
logo_url = fields.Url(allow_none=True, validate=validate.Length(max=512))
|
||||
|
||||
|
||||
class OrganizationMemberSchema(Schema):
|
||||
"""Schema for Organization Member."""
|
||||
|
||||
id = fields.Str(dump_only=True)
|
||||
user_id = fields.Str(dump_only=True)
|
||||
organization_id = fields.Str(dump_only=True)
|
||||
role = fields.Str(dump_only=True)
|
||||
joined_at = fields.DateTime(dump_only=True)
|
||||
created_at = fields.DateTime(dump_only=True)
|
||||
|
||||
|
||||
class InviteMemberSchema(Schema):
|
||||
"""Schema for inviting a member to an organization."""
|
||||
|
||||
email = fields.Email(required=True)
|
||||
role = fields.Str(
|
||||
required=True,
|
||||
validate=validate.OneOf(["owner", "admin", "member", "guest"])
|
||||
)
|
||||
|
||||
|
||||
class UpdateMemberRoleSchema(Schema):
|
||||
"""Schema for updating a member's role."""
|
||||
|
||||
role = fields.Str(
|
||||
required=True,
|
||||
validate=validate.OneOf(["owner", "admin", "member", "guest"])
|
||||
)
|
||||
Reference in New Issue
Block a user