Commit Graph

242 Commits

Author SHA1 Message Date
Clark Boylan 7ae2662876 Retire this project
The upstream for this project has moved to github. Retire the opendev
repo to avoid any confusion.

Depends-On: https://review.opendev.org/c/openstack/project-config/+/818170
Change-Id: I0e7f14701a75c4cceb76c80d2584534ddbd45f58
2021-11-16 14:44:10 -08:00
smarcet 2838e04166 Added missing seeding
allow to seeed default access levels for existing summits

Change-Id: Ic848b5209f787350ba7ca31d7f0b993ad5a0b5b3
Signed-off-by: smarcet <smarcet@gmail.com>
2021-07-16 14:00:09 -03:00
smarcet 89cd16e565 Added new Moderator email
SUMMIT_SUBMISSIONS_PRESENTATION_MODERATOR_NOTIFICATION

Change-Id: I7ac6d395570547175363e5de25969175e4e6b37c
Signed-off-by: smarcet <smarcet@gmail.com>
2021-07-07 14:55:39 -03:00
smarcet 1fd901ae2f Added Image to BadgeFeature
Change-Id: I0ea27dea92535c0cdbfeb5aa264f36159e2f4034
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-28 17:21:00 -03:00
smarcet bb7dd557ae Fix on get tax type
Change-Id: I40d20daf013d08ef0438e3c96308622002801752
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-15 10:02:28 -03:00
smarcet 60309eabda Fix on MUX import
Change-Id: I2cfc52a07f03db59696f8ee4720774e67774864c
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-08 15:13:46 -03:00
Zuul 65c013db1e Merge "Import assets from MUX" 2021-06-07 20:43:10 +00:00
smarcet 4432a5f2b9 Import assets from MUX
Added new endpoints
POST api/v1/summits/{id}/presentations/all/import/mux

payload
* mux_token_id ( string|required)
* mux_token_secret ( string|required)
* email_to (optional|email)

required scopes

REALM_URL/summits/write
REALM_URL/summits/write-event
REALM_URL/summits/write-presentation

Change-Id: If3af7466f5c2fd1a38e1129fecd7e0b86312590e
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-04 16:28:20 -03:00
smarcet 8a00007b4d Fixed Typo
Change-Id: Iafd159c4ee0a4c9a2d69f50210ff6a8f8327f6d6
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-03 16:01:48 -03:00
smarcet c324f799dd Fix on accept html text on values
Change-Id: I33a93e0ca8d9e3bb5c6e0594bad4e3522a97c816
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-03 15:27:29 -03:00
smarcet 0d6ef0b014 Added HTML support to extra question labels
Change-Id: I32acb0a1c622d35844ca2b1b38ae55027db9b297
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-02 15:28:14 -03:00
smarcet 3e45fdb025 Added Presentation Disclaimer Logic
Change-Id: I9ab1c1e982e51c7159cd2c7f44a30c0ca9785810
Signed-off-by: smarcet <smarcet@gmail.com>
2021-05-28 13:22:06 -03:00
smarcet 14d2a15cf9 Fix on migration typo
Change-Id: I658c4b199b4f6a785e126c73e8644e9fb237d5ee
Signed-off-by: smarcet <smarcet@gmail.com>
2021-05-27 11:43:55 -03:00
smarcet 4086002ba3 Selection Plan extra questions
Added extra questions by selection plan

Change-Id: Ia4ca535f16826c30cc66ce642f4ad667d352aa2b
Signed-off-by: smarcet <smarcet@gmail.com>
2021-05-24 18:42:12 -03:00
smarcet 99faa022eb Fix on serializer
Change-Id: Ie2d8c35f29abf119da12e97a09582110e57995d1
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-29 16:18:26 -03:00
smarcet 31c3207477 Updated Presentation Entity
Added new attribute will_all_speakers_attend

Change-Id: If083cf095ec2e49cc4c9b8b3d93f0381aa8244e7
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-29 13:11:24 -03:00
smarcet 45ad467787 Fix on calculation of remaining_selections attribute
Change-Id: Ib09fd9c1468ec1f355d8f0314410bfebafda1938
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-26 19:39:00 -03:00
smarcet 36c4c84338 Activate/Deactive Ticket
added endpoints

PUT /api/v1/summits/{id}/orders/{order_id}/tickets/{ticket_id}/activate
DELETE /api/v1/summits/{id}/orders/{order_id}/tickets/{ticket_id}/activate

Change-Id: Ia154b2b6f03bcc0d0611e7141494187abdc9c631
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-22 16:42:45 -03:00
smarcet 39fcfb3dd6 Updated summit document
added show_always field

Change-Id: I1f77c1d796d80adf6e94a9e220c4bb89be6cfc57
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-19 15:12:40 -03:00
smarcet 6cb29f05fd Added short name to location
Change-Id: Ie0e92de646df1274d0d2c30717af79a9ee00c3ce
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-16 16:25:54 -03:00
smarcet f442aab850 Fixed endpoint typo
Change-Id: I347274afc8a37605270f44fc485020dc05d84f74
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-12 12:40:07 -03:00
smarcet bb98dd2da5 Fixed supporting company missing endpoints
Change-Id: Ice705593bee17382a3423d438b9ae99bb4ee4460
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-12 11:29:06 -03:00
smarcet 25f429082d Added missing endpoints to sponsored projects
Change-Id: I273977fee7f97569be8a33284d30a0d0f65fe746
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-09 18:08:45 -03:00
smarcet 06846a8382 Fixed action type authz
Change-Id: Ic482f928b854fb6ed85d1b50391c85e75c73b099
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-08 19:50:58 -03:00
smarcet de433e38de Fixed migration FK
Change-Id: I028e7ca4def65d662244196051b9c193dc63aabf
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-08 12:26:17 -03:00
smarcet 838b695643 Fixed presentation actions endpoints
PUT /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/actions/{action_id}/complete
DELETE /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/actions/{action_id}/incomplete

Change-Id: I41a0a5a44b2fcf2083b05cc2f65bbc44a9bdae6b
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-07 14:13:13 -03:00
smarcet 3983531390 Updated Summit Event
added fields

* updated_by_id
* created_by_id

added resource context facade binded to singleton
instance

Change-Id: I0b6a467f581e93648f70fdd7b6f982809e13cd01
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-06 10:15:44 -03:00
smarcet bb304273fd Presentation Action Endpoints
* changes on presentation serializer

added presentation.actions collection

Mark action as completed by current user

PUT /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/actions/{action_id}

required scopes

%s/summits/write

authz_groups

SuperAdmins,
Administrators,
TrackChairs,
TrackChairsAdmins,

Mark action as uncompleted by current user

DELETE /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/actions/{action_id}

required scopes

%s/summits/write

authz_groups

SuperAdmins,
Administrators,
TrackChairs,
TrackChairsAdmins,

Change-Id: I09a0443190a7ea713d76f9b79906fa6554fe2eff
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-01 15:56:23 -03:00
smarcet 0d836a1b90 Summit Presentation Actions Types
Updates to Summit Serializer

* added new collection presentation_action_types

Presentation Action Types

GET /api/v1/summits/{id}/presentation-action-types

filtering

'label' => ['=@', '=='],

ordering

'id',
'order',
'label',

required scopes

%s/summits/read
%s/summits/read/all

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

GET /api/v1/summits/{id}/presentation-action-types/csv

filtering

'name' => ['=@', '=='],
'label' => ['=@', '=='],
'is_enabled' => ['=='],

ordering

'id',
'order',
'label',

required scopes

%s/summits/read
%s/summits/read/all

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

POST /api/v1/summits/{id}/presentation-action-types

payload

'label'       => 'required|string|max:255',

required scopes

%s/summits/write

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

PUT /api/v1/summits/{id}/presentation-action-types/{action_id}

payload

'label'       => 'sometimes|string|max:255',
'order'       => 'sometimes|integer|min:1',

required scopes

%s/summits/write

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

GET /api/v1/summits/{id}/presentation-action-types/{action_id}

required scopes

%s/summits/read
%s/summits/read/all

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

DELETE /api/v1/summits/{id}/presentation-action-types/{action_id}

required scopes

%s/summits/write

auth groups

* SuperAdmins
* Administrators
* SummitAdministrators
* TrackChairsAdmins

Change-Id: Ibec7591b88470b59d9f942a553a8335a57e9db9e
Signed-off-by: smarcet <smarcet@gmail.com>
2021-04-01 12:36:17 -03:00
smarcet 07d8884d2f Fixed bugs on reorder endpoint
Change-Id: I2682421901518c4454a8078e70511dc205cb3770
Signed-off-by: smarcet <smarcet@gmail.com>
2021-03-22 14:08:23 -03:00
smarcet 40fe0d4e6a Added missing endpoint to track chairs api
export presentations to CSV

Change-Id: I53db367a30a9cda24830aea6af422e46ecb14d7a
Signed-off-by: smarcet <smarcet@gmail.com>
2021-03-11 13:37:33 -03:00
smarcet f1a3dde05c Added crud endpoints for track chairs categories
POST /api/v1/summits/{id}/track-chairs/{track_chair_id}/categories/{track_id}
DELETE /api/v1/summits/{id}/track-chairs/{track_chair_id}/categories/{track_id}

Change-Id: Icbd82c9d5ac66a9dc2c35d132a582a8e71d23a23
Signed-off-by: smarcet <smarcet@gmail.com>
2021-02-23 14:27:25 -03:00
smarcet 8084e257a3 Added missing endpoint
Change-Id: I1969c2ac95625a781ee60f6ce97320bfb5af1b9a
Signed-off-by: smarcet <smarcet@gmail.com>
2021-02-19 19:06:18 -03:00
smarcet c55f1b0582 Removed dup endpoint
Change-Id: If1300b56b2fe846490faf736ded29832a1a2454b
Signed-off-by: smarcet <smarcet@gmail.com>
2021-02-19 18:42:04 -03:00
smarcet dc6cfc296a Track chairs endpoints
** Get all presentations from selection Plan

GET /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations

filtering

'title'            => ['=@', '=='],
'abstract'         => ['=@', '=='],
'social_summary'   => ['=@', '=='],
'tags'             => ['=@', '=='],
'level'            => ['=@', '=='],
'summit_type_id'   => ['=='],
'event_type_id'    => ['=='],
'track_id'         => ['=='],
'speaker_id'       => ['=='],
'speaker'          => ['=@', '=='],
'speaker_email'    => ['=@', '=='],
'selection_status' => ['=='],
'id'               => ['=='],
'selection_plan_id' => ['=='],
'status'     => ['=='],
'is_chair_visible' => ['=='],
'is_voting_visible' => ['=='],

** for track chairs app use   'filter' => 'status==Received,is_chair_visible==1',

ordering

track

Scopes

REALM_BASE_URL/summits/read

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Get individual Selection List

GET /api/v1/summits/{id}/tracks/{track_id}/selection-lists/individual/owner/{owner_id}

Scopes

REALM_BASE_URL/summits/read

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Add to my individual Selection List

POST /api/v1/summits/{id}/tracks/{track_id}/selection-lists/individual/presentation-selections/{collection}/presentations/{presentation_id}

where {collection} should be one of following:
* selected
* maybe
* pass

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Remove From my individual selection list

DELETE /api/v1/summits/{id}/tracks/{track_id}/selection-lists/individual/presentation-selections/{collection}/presentations/{presentation_id}

where {collection} should be one of following:
* selected
* maybe
* pass

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Get Team Selection List

GET /api/v1/summits/{id}/tracks/{track_id}/selection-lists/team

Scopes

REALM_BASE_URL/summits/read

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Create team selection list

POST /api/v1/summits/{id}/tracks/{track_id}/selection-lists/team

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Reorder list

PUT /api/v1/summits/{id}/tracks/{track_id}/selection-lists/{list_id}/reorder

payload

hash => 'required|string'
collection => 'required|string|in:selected,maybe'
presentations => 'required|int_array' ( presentations ids)

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Get track chairs per Summit

GET /api/v1/summits/{id}/track-chairs

fitering

'member_first_name' => ['=@', '=='],
'member_last_name' => ['=@', '=='],
'member_full_name' => ['=@', '=='],
'member_email' => ['=@', '=='],
'member_id' => ['=='],
'track_id' => ['=='],
'summit_id' => ['==']

Scopes

REALM_BASE_URL/summits/read

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Mark Presentation as viewed

PUT /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/view

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Add Presentation Comment

POST /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/comments

Payload

'body' => 'required|string',
'is_public' => 'required|boolean',

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Get all Presention Category Change Request

GET /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/all/category-change-requests

filtering

'selection_plan_id' => ['=='],
'summit_id' => ['=='],
'new_category_id' => ['=='],
'old_category_id' => ['=='],
'new_category_title' => ['=@', '=='],
'old_category_title' => ['=@', '=='],
'requester_fullname' => ['=@', '=='],
'requester_email' => ['=@', '=='],
'aprover_fullname' => ['=@', '=='],
'aprover_email' => ['=@', '==']

ordering

'id',
'approval_date',
'status'

Scopes

REALM_BASE_URL/summits/read
REALM_BASE_URL/summits/read/all

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Add Presentation Category change Request

POST /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/category-change-requests

payload

'new_category_id' => 'required|integer',

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Resolve Presentation Category change Request

PUT /api/v1/summits/{id}/selection-plans/{selection_plan_id}/presentations/{presentation_id}/category-change-requests/{category_change_request_id}

payload

'approved' => 'required|bool',
'reason' => 'sometimes|string',

Scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs
track-chairs-admins

** Add track chair

POST /api/v1/summits/{id}/track-chairs

Payload

'member_id'   => 'required|int',
'categories' => 'required|int_array',

scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs-admins

** Update track chair

PUT /api/v1/summits/{id}/track-chairs/{track_chair_id}

Payload

'categories' => 'required|int_array',

scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs-admins

** Delete track chairs

DELETE /api/v1/summits/{id}/track-chairs/{track_chair_id}

scopes

REALM_BASE_URL/summits/write

AUTHZ

super-admins
administrators
track-chairs-admins

** Get Track Chair by Id

GET /api/v1/summits/{id}/track-chairs/{track_chair_id}

scopes

REALM_BASE_URL/summits/read

AUTHZ

super-admins
administrators
track-chairs-admins

Change-Id: Iab0d77a6337a0db27c649dcafb1d90f09923df8a
Signed-off-by: smarcet <smarcet@gmail.com>
2021-02-19 13:54:28 -03:00
smarcet b654c8b449 Tweak on member serializer
Change-Id: I09a44aa2cc985abfc3a4d71b23a75e26bee9eb28
Signed-off-by: smarcet <smarcet@gmail.com>
2021-01-20 16:42:14 -03:00
smarcet bd94b62c12 Added Membership endpoints for my member
sign foundation

scopes

REAL_URL/members/write/me

PUT /api/v1/members/me/membership/foundation

resign foundation membetship

PUT /api/v1/members/me/membership/community

scopes

REAL_URL/members/write/me

Change-Id: Ib636cf5149cb8b0f633243726c58d3e9329c7234
Signed-off-by: smarcet <smarcet@gmail.com>
2021-01-12 18:41:26 -03:00
smarcet 294bb8f42b Move Level attribute from Presentation to SummitEvent
Change-Id: Id9f072ad84a7972cbc388364eebf5a4687e447f9
Signed-off-by: smarcet <smarcet@gmail.com>
2020-12-09 12:53:09 -03:00
smarcet 35fc57473c Sponsored Projects - Endpoints
POST /api/v1/sponsored-projects

payload

name
description
is_active

scope

REALM_URL/sponsored-projects/write

GET /api/v1/sponsored-projects

scope

REALM_URL/sponsored-projects/read

PUT /api/v1/sponsored-projects/{id}

payload

name
description
is_active

scope

REALM_URL/sponsored-projects/write

GET /api/v1/sponsored-projects/{id}
scope

REALM_URL/sponsored-projects/read

PUBLIC

GET /api/public/v1/sponsored-projects/{slug}

DELETE /api/v1/sponsored-projects/{id}

scope

REALM_URL/sponsored-projects/write

POST /api/v1/sponsored-projects/{id}/sponsorship-types

payload
name
description
is_active
order

scope

REALM_URL/sponsored-projects/write

GET /api/v1/sponsored-projects/{id}/sponsorship-types

scope

REALM_URL/sponsored-projects/read

GET /api/v1/sponsored-projects/{id}/sponsorship-types/{id}

scope

REALM_URL/sponsored-projects/read

DELETE /api/v1/sponsored-projects/{id}/sponsorship-types/{id}

scope

REALM_URL/sponsored-projects/write

PUT /api/v1/sponsored-projects/{id}/sponsorship-types/{id}

payload
name
description
is_active
order

scope

REALM_URL/sponsored-projects/write

PUT /api/v1/sponsored-projects/{id}/sponsorship-types/{id}/supporting-companies/{id}

payload
order (optional)

scope

REALM_URL/sponsored-projects/write

DELETE /api/v1/sponsored-projects/{id}/sponsorship-types/{id}/supporting-companies/{id}

scope

REALM_URL/sponsored-projects/write

GET /api/v1/sponsored-projects/{id}/sponsorship-types/{id}/supporting-companies

scope

REALM_URL/sponsored-projects/read

Change-Id: I9c0b1bb457a1c583afd284f56f2aced5deceaa02
Signed-off-by: smarcet <smarcet@gmail.com>
2020-11-30 15:09:40 -03:00
smarcet 3234150b1a Added missing migration
Change-Id: I2a447ca409b2d87e1755e6b80238dfaa6e3a04a1
Signed-off-by: smarcet <smarcet@gmail.com>
2020-11-16 12:13:36 -03:00
smarcet ece567afe9 Added admin endpoints to cancel order/tickets refunds
DELETE  api/v1/summits/all/orders/{order_id}/refund/cancel

DELETE api/v1/summits/all/orders/{order_id}/tickets/{ticket_id}/refund/cancel

Change-Id: I93c5c747785a7e97adc1fc30b67ba3ee33e97e8c
Signed-off-by: smarcet <smarcet@gmail.com>
2020-11-09 10:59:05 -03:00
smarcet c64e6faa92 Fixed sponsor FK
Change-Id: I0224320f973ba9a28dd7936a8aa871c7d918c892
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-29 15:13:19 -03:00
smarcet 7b5f942320 Fixed endpoints
Change-Id: Id428f8dee386f2498aa4beb38b2f90c9db84310d
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-28 00:47:34 -03:00
smarcet 08401a278f Attendees CRUD refactoring
updated endpoints

Change-Id: I5df4397b772bb8938dcaacb014e8a911e4456ba9
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-27 20:36:14 -03:00
smarcet 4addbe0c94 Added Track Icon endpoints
POST /api/v1/summits/{id}/tracks/{track_id}/icon

param

file

Scopes
%s/summits/write

DELETE /api/v1/summits/{id}/tracks/{track_id}/icon

Scopes

%s/summits/write

Change-Id: Iefc9570a7b2f3b06174445b2f661c080c0e91699
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-22 16:24:52 -03:00
smarcet 7b27b05d72 Added new Presentation.progress state
PHASE_UPLOAD

Change-Id: Ib6a879e2862d5cdff22f473f2a1d31d0e96e4c0f
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-21 14:32:03 -03:00
smarcet bed3d61680 Updated SelectionPlan entity
Added allow_new_presentations field
to prevent user to add new presentations on a particular selection plan

Change-Id: I900e28df8e329277fbf8da64612c4e1722b688ad
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-21 10:03:55 -03:00
smarcet 9b6406902c Fix on mapping
Change-Id: I9f7a34d1cf9c9779be508e191ee8731eb6ea1b3b
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-18 01:55:03 -03:00
smarcet 420c42fbe6 Added Location field to summit metric
Change-Id: Ib8c9f96437e2414ce4d46714f8724330de2dbfc5
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-16 12:01:23 -03:00
smarcet 518feb0efb Added Virtual badge scan feature
endpoint

POST api/v1/summits/{id}/sponsors/{sponsor_id}/user-info-grants/me

scopes

REALM_URL/%s/summits/badge-scans/write/me

Change-Id: I693fc0ff69e21f44849946b83e0df22a03d904a5
Signed-off-by: smarcet <smarcet@gmail.com>
2020-10-15 17:15:40 -03:00